为了账号安全,请及时绑定邮箱和手机立即绑定

XPath:查找具有两个条件的节点

XPath:查找具有两个条件的节点

九州编程 2021-08-19 20:10:47
我得到了这个 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字段作为另一个条件添加到这个表达式中,我需要这方面的帮助。
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您可以使用子路径作为谓词。假设您要选择包含“某些消息子字符串”code的消息资源message

//*[local-name()='message-resource' and ./*[local-name()='message' and contains(text(), 'some message substring')]]//*[local-name()='code'][contains(text(), 'edi')]


查看完整回答
反对 回复 2021-08-19
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我的版本

//*[local-name()='message-resource']/*[local-name()='code' and contains(text(), 'edi')]/../*[local-name()='message' and contains(text(), 'PPO')]/..

只需将“PPO”替换为您在消息中搜索的内容。


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信