xpath过滤具有特定元素的项目

时间:2012-03-30 20:19:14

标签: xpath terminology

我不确定术语,因此在寻找潜在客户时遇到一些麻烦 基本上假设我有类似

的东西
<book>
   <genre>sci-fi</genre>
   <genre>happy</genre>
</book>
<book>
   <genre>romance</genre>
</book>

我想查询一系列没有“科幻”作为其中一种类型的书籍。 我尝试过像

这样简单的事情
//book[//book/genre != "sci-fi"]

认为它将返回所有没有具有“科幻”价值的流派元素的书籍,但它仍将返回第一个,因为其中一个类型不是“科幻”

另外,我怎么会以一种让人们知道我在说什么的方式来表达这个问题呢?

1 个答案:

答案 0 :(得分:7)

方括号的术语是谓词。您正在寻找没有带有“sci-fi”文本的名为genre的子元素的书的元素。这个将匹配所有至少有一个非科幻类型的书籍。

//book[genre != "sci-fi"]

以下将做你想做的事:

//book[not(genre = 'sci-fi')]

请注意,然后您可以在其末尾添加其他路径,因此,如果您的图书中包含title元素,则可以获得所有标题:

//book[not(genre = 'sci-fi')]/title