XPath可以查找并返回不包含满足条件的元素的结果节点吗?
例如:
如果我有这个:
<ShoppingCenter>
<bookstore>
<book>
<year>2005</year>
<comments> Boring! </comments>
</book>
</bookstore>
<bookstore>
<book>
<year>2005</year>
</book>
</bookstore>
<bookstore>
<book>
<year>2005</year>
<comments> Interesting! </comments>
</book>
</bookstore>
</ShoppingCenter>
我想仅仅得到没有带评论书籍的书店 在这种情况下:第二家商店。
有可能吗?如果是这样 - 怎么样?
答案 0 :(得分:1)
是的,您可以使用not()
:
//bookstore[not(book/comments)]
演示(使用xmllint
):
$ xmllint input.xml --xpath "//bookstore[not(book/comments)]"
<bookstore>
<book>
<year>2005</year>
</book>
</bookstore>