查看以下XML示例:
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<price>39.95</price>
<title lang="eng">Learning XML</title>
</book>
</bookstore>
使用XPath我不会选择所有书籍,第一个孩子是 Headers 元素,第二个孩子是价格元素 . 这将返回示例中的第一本书 .
我尝试了以下表达式:
book[title[1] and price[2]]
但是这个表达式并不匹配,因为它选择了至少有一个title元素和至少两个price元素的所有书籍 . 如何更改此表达式以选择所有书籍,其中第一个孩子是 Headers 元素,第二个孩子是价格元素?
1 回答
你可以通过获取
title
子进行检查是否存在以下price
兄弟:演示(使用xmllint):
另一种方法是检查
book
节点的第一个和第二个子节点的name()
: