xml解析

作者: 龙剑灵 | 来源:发表于2020-03-19 22:38 被阅读0次
    final String xml = '''
    <Result>
      <Data id="99" ServerTime="服务器时间" TotalpageNum="总页数" CurPageNum="当前页数">    
        <CASE id='1'>
             <AHDM id='11'>001</AHDM>
             <XH>001XH</XH>
             <NAME>李小龙</NAME>
             <FYDM>001FY</FYDM>
             <FYDM>001FY</FYDM>
        </CASE>
        <CASE id='1'>
             <AHDM id='11'>002</AHDM>
             <XH>002XH</XH>
             <NAME>周星池</NAME>
             <FYDM>002FY</FYDM>
        </CASE>
        <CASE id='2'>
             <AHDM id='22'>003</AHDM>
             <XH>003XH</XH>
             <NAME>李小龙</NAME>
             <FYDM>003FY</FYDM>
             <FYDM>003FY</FYDM>
        </CASE>
      </Data>
    </Result>'''
    
    def xmlSluper = new XmlSlurper()
    def response = xmlSluper.parseText(xml)
    println response.Data.CASE[0].XH.text() //001XH
    println response.Data.@id //99
    
    
    def list = []
    //此处返回的是满足条件的当前节点集合
    response.Data.CASE.each {
        ca -> if (ca.NAME.equals('李小龙')) {
            list.add(ca.AHDM.text())
        }
    }
    
    println list //[001, 003]
    
    //groovy的遍历
    //def cas = response.depthFirst().findAll {
    def cas = response.'**'.findAll {
        ca ->  return ca.NAME.text() == "李小龙"
    }
    println cas.toListString()
    
    //广度遍历xml  重新看
    //def name = response.Data.'*'.findAll {
    def name = response.Data.children().findAll {
        node -> node.name() == 'CASE' && node.@id == '1'
    }.collect { node -> return node.NAME.text() }
    println name //[李小龙, 周星池]
    

    相关文章

      网友评论

          本文标题:xml解析

          本文链接:https://www.haomeiwen.com/subject/bnvfehtx.html