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

如何使用Groovy读取并解析XML文件,提取店铺ID与国家信息

使用Groovy读取并解析XML文件,提取shop id与country信息

你已经通过XmlSlurper成功加载了XML文件,接下来可以用Groovy简洁的语法快速提取目标信息,以下是具体实现:

基础提取(直接打印结果)

// 读取XML文件
def xml = new XmlSlurper().parse("book.xml")

// 遍历所有shop节点
xml.Shops.shop.each { shop ->
    // 获取shop节点的id属性
    def shopId = shop.@id
    println "店铺ID: $shopId"
    
    // 遍历当前shop下的所有ctr节点,提取country属性
    shop.ctr.each { ctr ->
        def country = ctr.@country
        println "  所属国家: $country"
    }
    println "------------------------"
}

核心语法说明

  • 节点层级访问:XML根节点是<Someinformation>,直接通过xml.Shops定位到<Shops>节点,再用.shop获取所有<shop>子节点;
  • 属性提取:Groovy中用@属性名语法获取节点的属性值,比如shop.@id拿到shop的id,ctr.@country拿到对应国家信息。

结构化收集数据(存入对象列表)

如果需要把提取到的数据整理成结构化格式(方便后续处理),可以用collect方法生成列表:

def xml = new XmlSlurper().parse("book.xml")

// 收集所有店铺信息为Map列表
def shopInfoList = xml.Shops.shop.collect { shop ->
    [
        shopId: shop.@id,
        relatedCountries: shop.ctr.collect { it.@country }
    ]
}

// 打印结构化结果
shopInfoList.each { info ->
    println "店铺ID: ${info.shopId},关联国家: ${info.relatedCountries.join(', ')}"
}

这段代码的输出结果为:

店铺ID: shop1,关联国家: Japan, Korea
店铺ID: shop2,关联国家: England, Germany

内容的提问来源于stack exchange,提问作者Liu Xu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:05:20