使用C#读取特定的XML标签属性

时间:2017-09-25 19:38:04

标签: c# xml

我的配置文件如下:

<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。它要么是 - 要么我得到网站的路径或名称而不是两者。有没有办法确定两者?

1 个答案:

答案 0 :(得分:0)

我使用了Microsoft.Web.Administration,并且能够得到我想要的东西。