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