Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C读取特定的XML标记属性#_C#_Xml - Fatal编程技术网

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

C# 使用C读取特定的XML标记属性#,c#,xml,C#,Xml,我的配置文件如下所示: <application> <sites> <site name="Default Web Site" id="100"> <application path="/" applicationPool="Default Web Site"> <virtualDirectory path="/" physicalPath="D:\inetpub\folder1" />

我的配置文件如下所示:

<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>

但我无法访问默认网站的物理路径。要么是——要么是我得到了站点的路径或名称,而不是两者。有什么方法可以同时识别这两种吗?

我使用了Microsoft.Web.Administration来实现这一点,并且能够得到我想要的东西

不要嵌套那些if语句
需要转到每个网站并获取其物理路径
首先您需要一个有效的xml如何使用这种缩进进行编码?
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