如何:搜索XML子节点

时间:2009-04-06 14:05:11

标签: c# xml xpath

给出一块Xml,如下图所示。如何编写XPATH查询以获取'leaf2'子项的值,其中'key'值具有特定值(比如2)

我在C#.NET工作。目前我只是想使用SelectNodes获取密钥的Xpath,找到正确的值,然后导航回到leaf2。

<root>
    <child>
        <anotherChild>
           <key>1</key>
        </anotherChild>
        <leaf1>X</leaf1>
        <leaf2>Y</leaf2>
        <leaf3></leaf3>
    </child>
    <child>
        <anotherChild>
           <key>2</key>
        </anotherChild>
        <leaf1>A</leaf1>
        <leaf2>B</leaf2>
        <leaf3></leaf3>
    </child>
</root>

2 个答案:

答案 0 :(得分:8)

你想:

/root/child[anotherChild/key = '2']/leaf2

这就是说,“获取名为leaf2的元素,其父级为child,其祖父母为root,其中child正由其名为{{ 1}}名为anotherChild的孩子,其值为key。“

答案 1 :(得分:2)

或者,也许更灵活一点,因为它不假设祖父是根

//child/anotherChild/key[text()="2"]/../../leaf2

“找到带有文字2的密钥,父母是另一个孩子和祖父母,去祖父母(即孩子,找到leaf2”