2014-02-28 81 views
0

我在寻找一个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> 

因此,在这个例子中,我想获得所有非小说类的type<book>元素谁拥有的1/1/1900一个dob<author>。我不知道<author>节点的深度有多少,所以我需要一个可以检查所有后代的解决方案。

回答

1

你可以试试这个方法:

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

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

//book[@type = "nonfiction"][.//author[dob = "1/1/1900"]] 
相关问题