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

问题描述 投票:-1回答:1

我的XML包含一组预定义元素,但我无法获取数组。这是XML结构:

<?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>

我试图制作一个看起来像这样的结构:

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

但是它在输出时给了我空数组。

xml go xml-parsing
1个回答
0
投票

您可以使用以下结构模式来解析给定的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"`
}

工作示例:https://play.golang.org/p/H6EHl_1dPLg

© www.soinside.com 2019 - 2024. All rights reserved.