使用groovy获取xml中具有相同节点名的嵌套xml的值

使用groovy获取xml中具有相同节点名的嵌套xml的值,groovy,soapui,Groovy,Soapui,我是Groovy的新手,正在尝试使用Groovy打印下面的输出,但是我无法从下面的XML中获取区域值 我尝试使用.each并将offercode保存到一个列表中并打印值,但我无法对Zone执行相同的操作。你能在这方面指导我吗 以下是XML: 6789 放弃 宣传片 E 1区 2区 3区 4区 12345 放弃 宣传片 E 1区 2区 3区 4区 12345 放弃 宣传片 E 您的示例中存在一些问题 XML无效:所有元素都缺少结束标记 您的GPath与XML不匹配 看起来您的GPath希望XM

我是Groovy的新手,正在尝试使用Groovy打印下面的输出,但是我无法从下面的XML中获取区域值

我尝试使用.each并将offercode保存到一个列表中并打印值,但我无法对Zone执行相同的操作。你能在这方面指导我吗

以下是XML:


6789
放弃
宣传片
E
1区
2区
3区
4区
12345
放弃
宣传片
E
1区
2区
3区
4区
12345
放弃
宣传片
E

您的示例中存在一些问题

  • XML无效:所有
    元素都缺少结束标记
  • 您的GPath与XML不匹配
  • 看起来您的GPath希望XML嵌入到网页中

    在本例中,我添加了缺少的
    结束标记,并从文件中加载了XML

    file = new File( 'NestedXml.xml')
    def queryxml = new XmlParser(false,false)
      .parse( file )
    
    def nbaofferscode=[];
    def nbaOffersZone=[];
    
    queryxml.each { offer ->
      offer.'ns8:offerZones'.'ns8:zone'.each { zone ->
        nbaOffersZone << zone.text()
      }
      nbaofferscode << offer.'ns8:offerDetails'.offerCode.text()
    }
    
    println nbaofferscode
    println nbaOffersZone
    
    第三个优惠不包含任何区域

    [6789, 12345, 12345]
    [Zone 1, Zone 2, Zone 3, Zone 4, Zone 1, Zone 2, Zone 3, Zone 4]