Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 基于child的子值选择元素的XPath_Xml_Xpath - Fatal编程技术网

Xml 基于child的子值选择元素的XPath

Xml 基于child的子值选择元素的XPath,xml,xpath,Xml,Xpath,尝试基于某个元素的childrens childrens的值选择该元素 思考以下问题但不起作用,感谢您的帮助,谢谢 /book[/author/name='John']或 ./book[/author/name text() = 'John'] 想要所有作者名为“John”的书吗 Xml文件 <list> <book> <author> <name>John</name> <

尝试基于某个元素的childrens childrens的值选择该元素

思考以下问题但不起作用,感谢您的帮助,谢谢

/book[/author/name='John']

./book[/author/name text() = 'John']
想要所有作者名为“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>

约翰
4324234
新书
dsdaassda
...
...

差不多了。在谓词中,您需要相对路径,因此更改

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

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


您将匹配您的元素。您当前的谓词返回到文档的根目录以查找
作者

,而没有
对我不起作用(需要
/author/name
)是否可以在函数中使用此语法?例如,如何实现诸如
/book[contains(author/name,“John”)]
?@OgrishMan应该提出新的问题,但在此之前,我只想尝试一下!顺便说一下,对于xpath中的字符串文本,通常需要单引号
,而不是双引号
./book[./author/name = 'John']