2017-09-25 47 views
-2

我有我的配置文件,如下所示:讀取特定的XML標記propertie/s,使用C#

<application> 
    <sites> 
    <site name="Default Web Site" id="100"> 
     <application path="/" applicationPool="Default Web Site"> 
     <virtualDirectory path="/" physicalPath="D:\inetpub\folder1" /> 
     </application> 
    </site> 
    <site name="Default Web Site2" id="200"> 
     <application path="/" applicationPool="Default Web Site"> 
     <virtualDirectory path="/" physicalPath="D:\inetpub\folder2" /> 
     </application> 
    </site> 
    </sites> 
</application> 

我需要去每個網站並獲取其物理路徑。我已經做了以下 -

string filepath = @"C:\Users\Host.config"; 
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read); 
XmlDocument doc = new XmlDocument(); 
doc.Load(fs); 
if (File.Exists(filepath)) 
{ 
    do 
    { 
    switch (rdrXml.NodeType) 
    { 
     //case XmlNodeType.Element: 
     // TextBox1.Text = rdrXml.Name; 
     // break; 

     case XmlNodeType.Element: 
     if (rdrXml.Name== "site") 
     { 
     string webname= rdrXml["name"].ToString(); 
     TextBox2.Text = webname; 
     if (rdrXml.Name == "virtualDirectory") 
     { 
      TextBox1.Text = rdrXml["physicalPath"].ToString(); 
     } 
     } 
     break; 
    } 
    } while (rdrXml.Read()); 
} // file exists check 

但我無法進入默認網站的PhysicalPath。它要麼 - 要麼我得到的路徑或網站的名稱,而不是兩個。有沒有辦法來識別兩者?

+2

不要嵌套這些if語句 – rene

+1

'需要去每個網站並得到它的物理路徑首先你需要一個有效的xml –

+0

你如何使用這種縮進代碼? – Default

回答

0

我使用Microsoft.Web.Administration爲此,並能夠得到我想要的。