下面是Golang解析XML的常用方法,包含两个示例说明:
1. Go语言标准库包中的 encoding/xml
package main
import (
"encoding/xml"
"fmt"
)
// 定义需要解析的XML格式
type Person struct {
Name string `xml:"name"`
Age int `xml:"age"`
Sex string `xml:"sex"`
}
func main() {
// XML字符串
xmlStr := `
<?xml version="1.0" encoding="utf-8"?>
<person>
<name>Tom</name>
<age>18</age>
<sex>male</sex>
</person>`
// 解析XML字符串
var person Person
err := xml.Unmarshal([]byte(xmlStr), &person)
if err != nil {
fmt.Printf("error: %v", err)
return
}
// 打印解析结果
fmt.Printf("Person: %+v", person)
}
2. 第三方库 goxml2struct
package main
import (
"fmt"
"github.com/basgys/goxml2yaml"
)
type Person struct {
Name string `xml:"name"`
Age int `xml:"age"`
Sex string `xml:"sex"`
}
func main() {
xmlStr := `
<?xml version="1.0" encoding="utf-8"?>
<person>
<name>Tom</name>
<age>18</age>
<sex>male</sex>
</person>`
// 使用goxml2struct将XML字符串转换为结构体
var person Person
err := goxml2yaml.Unmarshal([]byte(xmlStr), &person)
if err != nil {
fmt.Printf("error: %v", err)
return
}
// 打印解析结果
fmt.Printf("Person: %+v", person)
}
以上两个示例分别使用了标准库包encoding/xml
和第三方库goxml2struct
来解析XML,第一个示例使用标准库中的xml.Unmarshal()
方法来解析XML,将XML解析成对应的结构体;第二个示例使用第三方库goxml2struct
来解析XML,将XML直接转换成结构体。需要注意的是,goxml2struct
需要先安装,可以使用go get github.com/basgys/goxml2yaml
命令安装。在实际使用中,可以针对不同的需求选择不同的方法,灵活运用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:golang解析xml的方法 - Python技术站