我得到了这个 XML:
<iet:aw-data>
<iet:metadata filter=""/>
<iet:message-resource>
<iet:message>תוכניות אחרות שאינן פדראליים</iet:message>
<iet:customer id="1"/>
<iet:code>edi.claimfilingindicator.11</iet:code>
<iet:locale>iw_IL</iet:locale>
</iet:message-resource>
<iet:message-resource>
<iet:message>ספק מועדף הארגון (PPO)</iet:message>
<iet:customer id="1"/>
<iet:code>edi.claimfilingindicator.12</iet:code>
<iet:locale>iw_IL</iet:locale>
</iet:message-resource>
.
.
.
</iet:aw-data>
我想构建一个表达式来获取具有 code
和 message
的所有节点,其中每个节点都包含给定的参数。
到目前为止我所做的是这个表达式:
String exp = "//*[local-name()='message-resource']//*[local-name()='code'][contains(text(), 'edi')]"
现在我想添加 message
字段作为此表达式的另一个条件,我需要这方面的帮助。
最佳答案
您可以使用子路径作为谓词。假设您要选择消息资源的代码
,其中消息
包含“某些消息子字符串”:
//*[local-name()='message-resource' and ./*[local-name()='message' and contains(text(), 'some message substring')]]//*[local-name()='code'][contains(text(), 'edi')]
关于java - XPath:查找具有两个条件的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52085972/