Kir*_*ril 2 xml marshalling go unmarshalling
xml文件由两个元素组成.除了一个元素名称外,这些元素具有相同的结构.我试图为XMLName属性设置一个值,但这不起作用.
<!-- first element -->
<PERSON>
<ELEM1>...</ELEM1>
<ELEM2>...</ELEM2>
<ELEM3>...</ELEM3>
<ELEM4>...</ELEM4>
</PERSON>
<!-- second element -->
<SENDER>
<ELEM1>...</ELEM1>
<ELEM2>...</ELEM2>
<ELEM3>...</ELEM3>
<ELEM4>...</ELEM4>
</SENDER>
Run Code Online (Sandbox Code Playgroud)
是否可以定义一个结构,使元素名称是动态的?
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"`
}
Run Code Online (Sandbox Code Playgroud)
在文档中,它表示该XMLName字段必须是类型xml.Name.
type Person struct {
XMLName xml.Name
E1 string `xml:"ELEM1"`
// ...
}
Run Code Online (Sandbox Code Playgroud)
通过以下Local字段设置元素名称xml.Name:
person := Person {
XMLName: xml.Name { Local: "Person" },
// ...
}
Run Code Online (Sandbox Code Playgroud)
(此外,必须导出E1-E4才能包含在XML输出中).
游乐场示例:http://play.golang.org/p/bzSutFF9Bo
| 归档时间: |
|
| 查看次数: |
5958 次 |
| 最近记录: |