基于子代子值选择元素的XPath

问题描述 投票:196回答:2

[尝试根据其子项之一的值选择一个元素

考虑以下内容但不起作用,感谢您的帮助,谢谢

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

./book[/author/name text() = '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>
xml xpath
2个回答
281
投票

几乎在那里。在谓词中,您需要relative路径,因此请更改

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

至任一

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

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

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


0
投票

我正在尝试做同样的事情,但是不起作用。

XML:

        <customize>
          <name>InstallationZeitfenster</name>
          <dataType rvcd="2">Alphanumerisch</dataType>
          <value>Nachmittag</value>
        </customize>
        <customize>
          <name>InstallationGeplant</name>
          <dataType rvcd="3">Datum</dataType>
          <value>06.11.2019</value>
        </customize>
      </customize>

我想要“值”节点的文本,其中的节点名称为“ InstallationGeplant”那就是我试图做的。

有人知道我应该怎么做吗?

由于名称空间,我必须像这样访问节点感谢您的帮助

© www.soinside.com 2019 - 2024. All rights reserved.