以下XML有一个元素的示例,该元素具有嵌套字段(标题,作者等(和文本(等等...(:
<?xml version="1.0" encoding="UTF-8"?>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
Blah Blah Blah Bleh Blah
</book>
我已经对此结构进行了编码以解码此XML,但我不知道在这种情况下应该使用哪个结构标记。我在文档中搜索,但一无所获。
type Book struct{
t string `xml:"book>title"`
p string `xml:"book>price"`
y string `xml:"book>year"`
a string `xml:"book>author"`
blah string ???????
}
根据文档:
如果 XML 元素包含字符数据,则该数据是 累积在具有标记",chardata"的第一个结构字段中。 结构字段可能具有 []byte 或字符串类型。 如果没有此类字段,则丢弃字符数据。
因此,您可以使用这样的结构对其进行解码:
type Book struct {
Title string `xml:"title"`
Price string `xml:"price"`
Year string `xml:"year"`
Author string `xml:"author"`
Body string `xml:",chardata"`
}
(请注意,要取消封送的字段必须导出,即必须以大写字母开头,否则无法取消封送。
您可以在此处查看示例:https://play.golang.org/p/OlwSqnHsT7