温馨提示×

Go中如何遍历XML文档

go
小亿
99
2024-04-03 10:33:05
栏目: 编程语言

在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)
	}
}

在这个示例中,我们定义了两个结构体BookBookstore来表示XML文档中的数据结构。然后使用xml.Unmarshal函数将XML数据解析成对应的结构体。最后通过遍历bookstore.Books来打印每个书籍的信息。

0