我有一个app.config文件,需要获取属性的值:
<param name="File" value="C:\"/>
Liquid XML Studio提供以下xml:
/configuration/log4net/appender/param[1]
但是,哪些C#代码可以使用xpath来获取值?
答案 0 :(得分:19)
使用此XPath:
/configuration/log4net/appender/param[@name='File']/@value
根据您阅读XML的方式,使用XPath可能会略有不同。如果您使用的是XDocument
,则可以使用XPathSelectElement
扩展方法。如果您使用的是XmlDocument
,则会有SelectSingleNode
方法。如果您使用XPathDocument
,则需要编译XPathExpression
并将其用于导航器。
答案 1 :(得分:6)
您可以使用XmlDocument
。请参阅XmlNode.SelectSingleNode
和其他人。
示例:
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<configuration>
<log4net>
<appender>
<param name=""File"" value=""C:\""/>
</appender>
</log4net>
</configuration>");
var node = doc.DocumentElement.SelectSingleNode("//param[@name = 'File']/@value");
Console.WriteLine(node.Value);
答案 2 :(得分:1)
喜欢......
var result = XDocument.Load("test.xml").Descendants("param");
foreach (var p in result)
{
Console.WriteLine(p.Attribute("name"));
}
Console.Read();
答案 3 :(得分:0)
您可以使用XmlDocument和方法SelectSingleNode - http://msdn.microsoft.com/en-us/library/fb63z0tw.aspx
它会找到一个与你的XPath匹配的节点。
我会使用LINQ to XML(而不是XPath)