在Go中遍历XML文档通常使用标准库中的encoding/xml
包。以下是一个简单的示例代码,演示如何遍历一个XML文档并打印出每个元素的名称和属性:
package main import ( "encoding/xml" "fmt" "os" ) func main() { xmlData := []byte(``) 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) } } Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J.K. Rowling 2005 29.99
在这个示例中,我们定义了两个结构体Book
和Bookstore
来表示XML文档中的数据结构。然后使用xml.Unmarshal
函数将XML数据解析成对应的结构体。最后通过遍历bookstore.Books
来打印每个书籍的信息。