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

在ReadyAPI中使用Groovy获取XML中Tag="A"的属性值方法咨询

提取XML中所有Tag属性为"A"的元素

你需要从给定的SOAP XML中提取所有Tag="A"的元素,现有代码仅能筛选Type="abg"的Cool标签,以下是实现需求的正确Groovy代码:

完整代码示例

def res = '''<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://abc" >
    <Cool Type="abc" >
    </Cool>
    <Cool Type="abg" >
    </Cool>
    <Cool Type="abg" >
    </Cool>
    <Cool Type="abg" >
        <Line LineID="0" Main="1">
            <Info updateDate="17-05-2028" >
                <Selection  Tag="A" Status="Offer"/>
                <Selection  Tag="A" Status="Offer"/>
                <Selection  Tag="A" Status="Offer"/>
            </Info>
        </Line>
    </Cool>
    <Cool Type="abg" >
        <Line LineID="0" Main="1">
            <Info updateDate="17-05-2028" >
                <Selection  Tag="A" Status="Offer"/>
                <Selection  Tag="A" Status="Offer"/>
                <Selection  Tag="A" Status="Offer"/>
            </Info>
        </Line>
    </Cool>
</SOAP-ENV:Envelope>  '''

xml = new XmlParser().parseText(res)

// 筛选所有Tag属性值为"A"的元素
def results = xml.'**'.findAll { it.name() == 'Selection' && it.@Tag == 'A' }

// 输出结果数量及元素信息
log.info("找到符合条件的元素数量: ${results.size()}")
results.eachWithIndex { elem, index ->
    log.info("第${index+1}个元素: Tag=${elem.@Tag}, Status=${elem.@Status}")
}

代码说明

  • xml.'**':利用Groovy的递归遍历语法,遍历XML文档中的所有节点
  • findAll { it.name() == 'Selection' && it.@Tag == 'A' }:精准筛选出节点名为Selection且Tag属性值为"A"的元素
  • 通过eachWithIndex遍历结果,输出元素数量及属性信息,可直接验证是否找到预期的6个元素

内容的提问来源于stack exchange,提问作者rhodes zheng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:17:26