gpt4 book ai didi

xml - Golang 编码动态 xml 元素名称

转载 作者:IT王子 更新时间:2023-10-29 01:24:59 26 4
gpt4 key购买 nike

xml 文件由两个元素组成。除了一个元素名称外,这些元素具有相同的结构。我尝试为 XMLName 属性设置一个值,但没有成功。

XML:

<!-- first element -->
<PERSON>
<ELEM1>...</ELEM1>
<ELEM2>...</ELEM2>
<ELEM3>...</ELEM3>
<ELEM4>...</ELEM4>
</PERSON>


<!-- second element -->
<SENDER>
<ELEM1>...</ELEM1>
<ELEM2>...</ELEM2>
<ELEM3>...</ELEM3>
<ELEM4>...</ELEM4>
</SENDER>

是否可以定义一个结构,使元素名称是动态的?

type Person struct {
XMLName string `xml:"???"` // How make this dynamic?
e1 string `xml:"ELEM1"`
e2 string `xml:"ELEM2"`
e3 string `xml:"ELEM3"`
e4 string `xml:"ELEM4"`
}

最佳答案

documentation ,它表示 XMLName 字段必须是 xml.Name 类型。

type Person struct {
XMLName xml.Name
E1 string `xml:"ELEM1"`
// ...
}

通过xml.NameLocal字段设置元素名称:

person := Person { 
XMLName: xml.Name { Local: "Person" },
// ...
}

(此外,必须导出 E1 - E4 才能包含在 XML 输出中)。

Playground 示例:http://play.golang.org/p/bzSutFF9Bo

关于xml - Golang 编码动态 xml 元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com