XPath根据childs子值选择元素

Jam*_*lsh 196 xml xpath

试图根据其中一个孩子的孩子的价值选择一个元素

想到以下但不工作,感谢任何帮助,谢谢

./book[/author/name = 'John'] 要么

./book[/author/name text() = 'John']
Run Code Online (Sandbox Code Playgroud)

想要所有作者姓名='John'的书籍

Xml文件

<list>
   <book>
      <author>
         <name>John</name>
         <number>4324234</number>
      </author>
      <title>New Book</title>
      <isbn>dsdaassda</isbn>
   </book>
   <book>...</book>
   <book>...</book>
</list>
Run Code Online (Sandbox Code Playgroud)

Aak*_*shM 281

差不多了.在你的谓词中,你想要一个相对路径,所以改变

./book[/author/name = 'John'] 
Run Code Online (Sandbox Code Playgroud)

要么

./book[author/name = 'John'] 
Run Code Online (Sandbox Code Playgroud)

要么

./book[./author/name = 'John'] 
Run Code Online (Sandbox Code Playgroud)

你会匹配你的元素.您当前的谓词会返回到文档的根目录以查找author.

  • 没有`.` 对我不起作用(需要`./author/name`) (3认同)
  • @OgrishMan 新问题应该在 [新问题](/sf/) 中,但在此之前我会尝试一下!顺便说一下,通常您需要单引号 `'` 而不是双引号 `"` 作为 xpath 中的字符串文字。 (2认同)