有什么区别在于!而不是在XPath中

zak*_*zak 2 xml database xpath

我有一个关于XPath !=not()XP 之间的区别的问题.

例如,这是我的XML数据库:

 <Books>
   <Book title="one">
      book1
   </Book >
   <Book title="one">
      book2
   </Book >
   <Book >
      book3
   </Book >
 </Books>
Run Code Online (Sandbox Code Playgroud)

这两个XPath查询之间的区别是什么:

  • //book[@title!='one']
  • //book[not(@title)]

所以,如果我问:我从第一个请求获得了多少书,以及我将从第二个请求获得多少书.

在上面带有2个请求的示例中,我是否会获得最后一本书"book3"元素?

谢谢.

And*_*son 5

  • //book[@title!="one"]

表示"选择不包含title等于的属性的书籍节点'one'"

  • //book[not(@title)]

表示"完全不包含title属性的书籍节点"

第一个可以用not()as 编写//book[not(@title="one")].