dongyuxin5353 2019-02-12 14:38
浏览 110
已采纳

如何将嵌套的XML元素解组为字符串数组?

My XML contains an array of predefined elements, but I can't pick up the array. Here is the XML structure:

<?xml version='1.0' encoding='UTF-8'?>
<results preview='0'>
    <meta>
       <fieldOrder>
          <field>values(metric_name)</field>
       </fieldOrder>
    </meta>
    <result offset='0'>
        <field k='values(metric_name)'>
            <value><text>process.cpu.avg</text></value>
            <value><text>process.cpu.last</text></value>
            <value><text>process.cpu.max</text></value>
            <value><text>process.cpu.min</text></value>
            <value><text>process.disk.avg</text></value>
            <value><text>process.disk.last</text></value>
            <value><text>process.disk.max</text></value>
            <value><text>process.disk.min</text></value>
            <value><text>process.ram.avg</text></value>
            <value><text>process.ram.last</text></value>
            <value><text>process.ram.max</text></value>
            <value><text>process.ram.min</text></value>
        </field>
    </result>
</results>

I tried to make a struct that looks like:

type Metrics struct {
    Value []string `xml:">text"`
}

But it gives me empty array at output.

  • 写回答

1条回答 默认 最新

  • 普通网友 2019-02-12 15:23
    关注

    You can use the following struct schema to parse the given XML.

    type Results struct {
        Meta   Meta   `xml:"meta"`
        Result Result `xml:"result"`
    }
    
    type Meta struct {
        FieldOrder FieldOrder `xml:"fieldOrder"`
    }
    
    type FieldOrder struct {
        Fields []string `xml:"field"`
    }
    
    type Result struct {
        Fields []Field `xml:"field"`
    }
    
    type Field struct {
        K      string   `xml:"k,attr"`
        Values []string `xml:"value>text"`
    }
    

    Working example: https://play.golang.org/p/H6EHl_1dPLg

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样