【问题标题】:How to parse xml in golang with list of multiple elements values. And store them in list如何使用多个元素值列表在 golang 中解析 xml。并将它们存储在列表中
【发布时间】:2020-09-14 05:10:48
【问题描述】:

我想解析这个xml并存储在golang下面的一个数据结构中。

相机:LibX,LibY,...(动态列表) 显示:LibP,LibQ,...(动态列表)

 <techpackages>
    <techpackage>
        <techpackage_name> camera </techpackage_name>
        <library>LibX</library>
        <library>LibY</library>
        ....(dynamic number of libraries)
    </techpackage>
    <techpackage>
        <techpackage_name> display </techpackage_name>
        <library>LibP</library>
        <library>LibQ</library>
        ....(dynamic number of  libraries)
    </techpackage>
</techpackages>

【问题讨论】:

  • 你到底想要什么Go结构体?
  • 看编码/xml
  • @BurakSerdar 我想用 Go 语言解析。这就是为什么我提到了 Go 结构,它可以以上述格式存储数据
  • 那不是 Go 结构。那是一个数组吗?一个结构?首先将您想要的输出定义为 go 结构。然后,如果可能,您可以向该结构添加 XML 标记以解组输入。如果不行,可以使用与输入结构匹配的中间结构来解组,然后处理使其看起来像你想要的。

标签: xml parsing go


【解决方案1】:

您可以将所谓的“动态列表”解组为切片。

type TechPackages struct {
    xml.Name    `xml:"techpackages"`
    TechPackage []TechPackage `xml:"techpackage"`
}

type TechPackage struct {
    TechPackageName string   `xml:"techpackage_name"`
    Library         []string `xml:"library"`
}

var pp TechPackages
if err := xml.Unmarshal(data, &pp); err != nil {
    panic(err)
}

https://play.golang.org/p/T0shyWsBAFg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多