You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置XML双过滤条件匹配指定name且value含冒号的节点

XML双条件过滤实现方案

筛选规则

  • 匹配name属性值为SHIPMENT.ORDERS.ORREFNUMS.REFNUM_VALUE的<inputData>节点
  • 该节点下<values>包含的<value>子节点,文本内容必须包含英文冒号:

匹配逻辑实现

直接通过XPath即可完成双条件过滤,由于示例XML带默认命名空间,用local-name()忽略命名空间匹配即可,表达式如下:

//*[local-name()='inputData' and @name='SHIPMENT.ORDERS.ORREFNUMS.REFNUM_VALUE']/*[local-name()='values']/*[local-name()='value' and contains(text(), ':')]

上述表达式会直接返回所有同时满足两个条件的<value>节点,不需要额外做多层遍历判断。

示例验证

针对给出的示例XML,四个<value>节点的文本分别为24-100、RC3.B726030-001-CO8MODF183896704、Y、2022-06-23 23:59:59,仅最后一个时间格式的内容包含英文冒号,会被该表达式命中。

代码调用参考(Python lxml库)

from lxml import etree

# 传入待处理XML
xml_str = """
<inputData name="SHIPMENT.ORDERS.ORREFNUMS.REFNUM_VALUE" xmlns="http://xmlns.oracle.com/apps/otm/ExternalRating">
    <values xmlns="http://xmlns.oracle.com/apps/otm/ExternalRating">
        <value xmlns="http://xmlns.oracle.com/apps/otm/ExternalRating">24-100</value>
        <value xmlns="http://xmlns.oracle.com/apps/otm/ExternalRating">RC3.B726030-001-CO8MODF183896704</value>
        <value xmlns="http://xmlns.oracle.com/apps/otm/ExternalRating">Y</value>
        <value xmlns="http://xmlns.oracle.com/apps/otm/ExternalRating">2022-06-23 23:59:59</value>
    </values>
</inputData>
"""
root = etree.fromstring(xml_str.encode("utf-8"))
result = root.xpath("//*[local-name()='inputData' and @name='SHIPMENT.ORDERS.ORREFNUMS.REFNUM_VALUE']/*[local-name()='values']/*[local-name()='value' and contains(text(), ':')]")

# 输出匹配结果
for item in result:
    print(item.text)

运行输出:

2022-06-23 23:59:59

内容的提问来源于stack exchange,提问作者nagarjunareddy akula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:03:20