如何从 go 中的 XML 元素获取文本(结构标签)?



以下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

最新更新