一只斗牛犬
我找到的所有示例都展示了如何使用解组功能将数据读取到我需要定义的对象中,但是这非常耗时,因为我需要定义很多我不会使用的人员。然后不要定义你不会使用的东西,只定义你将使用的东西。您不必创建完全覆盖 XML 结构的 Go 模型。假设您有一个这样的 XML:<blog id="1234"> <meta keywords="xml,parsing,partial" /> <name>Partial XML parsing</name> <url>http://somehost.com/xml-blog</url> <entries count="2"> <entry time="2016-01-19 08:40:00"> <author>Bob</author> <content>First entry</content> </entry> <entry time="2016-01-19 08:30:00"> <author>Alice</author> <content>Second entry</content> </entry> </entries></blog>假设您只需要此 XML 中的以下信息:ID关键词博客名称作者姓名您可以使用以下结构对这些需要的信息进行建模:type Data struct { Id string `xml:"id,attr"` Meta struct { Keywords string `xml:"keywords,attr"` } `xml:"meta"` Name string `xml:"name"` Authors []string `xml:"entries>entry>author"`}现在您可以使用以下代码仅解析这些信息:d := Data{}if err := xml.Unmarshal([]byte(s), &d); err != nil { panic(err)}fmt.Printf("%+v", d)输出(在Go Playground上试试):{Id:1234 Meta:{Keywords:xml,parsing,partial} Name:Partial XML parsing Authors:[Bob Alice]}