簡體   English   中英

父節點中的搜索節點-xml

[英]Search node in the parent node - xml

我想搜索父節點內的特定節點,

我試圖這樣做:

public string GetNodeValue(XmlNode myNode, string nodeName, string parentName)
{
  return myNode.SelectSingleNode("//"+parentName).SelectSingleNode("//"+nodeName).InnerText;
}

private void SetXmlFile(string path)
    {
       XmlDocument _doc = new XmlDocument();
        _doc.Load(path);

        foreach (XmlNode node in _doc.SelectNodes("//MyNodeName"))
        {
           GetNodeValue(node,"NodeChildeName1","NodeParentName2");
        }

    }

我的xml看起來像這樣:

<SomeNode Name="x">
    <a>a1</a>
    <a>a2</a>
    <a>a3</a>
</SomeNode >
<MyNodeName Name="a1">
    <NodeParentName1>
        <NodeChildeName1>0</NodeChildeName1>
        <NodeChildeName2>40</NodeChildeName1>       
    </NodeParentName1>
    <NodeParentName2>
        <NodeChildeName1>1000</NodeChildeName1>
        <NodeChildeName2>70</NodeChildeName1>       
    </NodeParentName2>
</MyNodeName >

我沒有得到正確的值,似乎他使用了具有名稱的第一個節點,而不是父節點的第一個節點。 (我得到0而不是1000)

GetNodeValue中的//導致您的xpath查詢從根目錄開始。 從GetNodeValue方法中刪除//。

public string GetNodeValue(XmlNode myNode, string nodeName, string parentName)
{
    return myNode.SelectSingleNode(parentName).SelectSingleNode(nodeName).InnerText;
}

您也可以像這樣查詢文檔:

_doc.SelectSingleNode("//MyNodeName/NodeParentName2/NodeChildeName1").InnerText

順便說一句,您發布的xml無效。 NodeChildeName2NodeChildeName1的結束標記

暫無
暫無

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

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