簡體   English   中英

使用c#獲取XPAth的xml屬性

[英]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']只有在具有值idIdentifier屬性時才會選擇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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM