java - XPath:查找具有两个条件的节点
问题描述
我得到了这个 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
字段作为另一个条件添加到此表达式中,我需要帮助。
解决方案
您可以使用子路径作为谓词。假设您要选择包含“某些消息子字符串”code
的消息资源:message
//*[local-name()='message-resource' and ./*[local-name()='message' and contains(text(), 'some message substring')]]//*[local-name()='code'][contains(text(), 'edi')]
推荐阅读
- selenium - 一旦在 Robot 框架中单击按钮,验证按钮是否存在就会失败
- python - 如何使用 Djikstras 算法获得一个来源和两个目的地的最短距离?
- python - 如何在一个网格中镶嵌 1000 个栅格?按文件名顺序?
- html - bookdown:交叉引用选项卡部分中的内容
- reactjs - js 事件未在 webpack 构建的反应应用程序中触发
- java - Appium IOS 测试在服务器手动启动时运行,但在通过 AppiumDriverLocalService 启动服务器时不运行
- python - Tkinter 修复 Frame 的大小以不与滚动条重叠 Canvas 边框
- javascript - 悬停影响父元素中更高的元素
- c++ - 使用 mingw 构建 boost 1.75.0 库 - b2 什么都不做
- odoo - 当我向 UPS 提出评级请求时,没有返回协商的费率