2017-09-25 22 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为此,并能够得到我想要的。