簡體   English   中英

XmlNode.SelectSingleNode返回當前的元素?

[英]XmlNode.SelectSingleNode returns element outside current?

我的問題是這樣的。 假設我有像這樣的xml

<root>
  <child Name = "child1">
    <element1>Value1</element1>
    <element2>Value2</element2>
  </child>
  <child Name = "child2">
    <element1>Value1</element1>
    <element2>Value2</element2>
    <element3>Value3</element3>
  </child>
</root>

我有一個方法獲取參數XmlNode“節點”。 讓我們說“節點”有值“child1”然后我嘗試這樣:

node.SelectSingleNode( "//element3" );

問題是這段代碼從“child2”返回element3。 我想要的是如果沒有“node”的子“element3”返回null所以我手動添加它。
最好的祝福,
Iordand

你擁有的XPath表達式不是你想要的。

替換為:

node.SelectSingleNode( "element3" ); 

而且你會得到你正在尋找的結果。

當我想在指定節點上運行xpath時,以下工作是完美的。

XmlNodeList nodes = xmlDoc.SelectNodes(".//Child");

“//”是全局查找。

你需要做的是獲得所有孩子的清單

XmlNodeList nodes = xmlDoc.SelectNodes("//Child");

循環遍歷該列表並執行

XmlNode node = nodes.SelectSingleNode("element3");

如果它不在那里,它將返回null,並將逐步查看每個孩子。

這里的問題是你正在使用的XPath表達式,嘗試沒有'//'。 像那樣:

node.SelectSingleNode( "element3" );

在這里閱讀更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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