在Go中遍历XML文档通常使用标准库中的encoding/xml
包。以下是一个简单的示例代码,演示如何遍历一个XML文档并打印出每个元素的名称和属性:
package main
import (
"encoding/xml"
"fmt"
"os"
)
func main() {
xmlData := []byte(`
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
`)
type Book struct {
Title string `xml:"title"`
Author string `xml:"author"`
Year int `xml:"year"`
Price string `xml:"price"`
}
type Bookstore struct {
Books []Book `xml:"book"`
}
var bookstore Bookstore
err := xml.Unmarshal(xmlData, &bookstore)
if err != nil {
fmt.Println("Error unmarshaling XML:", err)
return
}
for _, book := range bookstore.Books {
fmt.Println("Title:", book.Title)
fmt.Println("Author:", book.Author)
fmt.Println("Year:", book.Year)
fmt.Println("Price:", book.Price)
}
}
在这个示例中,我们定义了两个结构体Book
和Bookstore
来表示XML文档中的数据结构。然后使用xml.Unmarshal
函数将XML数据解析成对应的结构体。最后通过遍历bookstore.Books
来打印每个书籍的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/972685.html