具有指定属性值的元素的XPath选择器,并具有指定属性值的后代

时间:2014-02-28 16:01:14

标签: xml xpath

我正在寻找一个XPath选择器,它将获取具有指定属性值的元素以及具有指定属性值的后代。以下是一个例子:

<book type="nonfiction">
    <title>foo</title>
    <author>
        <name>John Doe</name>
        <dob>1/1/1900</dob>
    </author>
</book>
<book type="fiction">
    <title>bar</title>
    <author>
        <name>Jane Doe</name>
        <dob>2/2/2000</dob>
    </author>
</book>

因此,在此示例中,我希望获得所有<book>个元素,其中type个非小说的<author> dob为1/1 / 1900。我不知道<author>节点有多少级别,所以我需要一个可以检查所有后代的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以尝试这种方式:

//book[@type='nonfiction' and .//author[dob='1/1/1900']]

答案 1 :(得分:0)

您可以使用以下内容获得所需的输出:

//book[@type = "nonfiction"][.//author[dob = "1/1/1900"]]