[英]Getting an xml attribute with XPAth using c#
我正在尝试从XML获取属性,但我收到一个错误:
表达式必须评估为节点测试
我是XPath的新手。
XML文件示例:
<Message>
<Head>
<Sender Identifier="id" ref=""/>
</Head>
</Message>
码:
XPathDocument xDoc = new XPathDocument("documentName.xml");
XPathNavigator nav = xDoc.CreateNavigator();
XPathNodeIterator xpathNode = nav.Select("/Message/Head/Sender/[@Identifier]");
//This is where I get the error.
而且我也不确定如何显示属性值。
它应该是
/Message/Head/Sender[@Identifier]
^
|->no need of / here since Identifier is an attribute of sender
所以,
/Message/Head/Sender[@Identifier]
只有在具有Identifier
属性的情况下才会选择Sender
/Message/Head/Sender[@Identifier='id']
只有在具有值id
的Identifier
属性时才会选择Sender
这是评估给定XML的Xpath的绝佳工具
转到此链接http://www.xmltoolbox.com/并尝试将您的xml粘贴到textarea中并将光标移动到您希望在下面生成Xpath.Xpath的节点
XmlIO xml = new XmlIO(xmlPath);
ProductName = xml.SelectNodeValue(@"//PRODUCTINFO/Application/@ProductName");
IDictionary<string, string> keyValList = xml.SelectNodesList(@"//PRODUCTINFO/Application/Parameters");
看一看
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.