[英]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,並將逐步查看每個孩子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.