我的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。
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"`
}