今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何将嵌套的 XML 元素解组到字符串数组中?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!
问题内容
我的 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"`
}
工作示例:https://play.golang.org/p/H6EHl_1dPLg
本篇关于《如何将嵌套的 XML 元素解组到字符串数组中?》的介绍就到此结束啦。