面试题答案
一键面试package main
import (
"encoding/xml"
"fmt"
)
// 定义结构体,注意标签中处理命名空间
type Root struct {
XMLName xml.Name `xml:"root"`
Child Child `xml:"ns:child"`
}
type Child struct {
XMLName xml.Name
Content string `xml:",chardata"`
}
func main() {
xmlData := `<root xmlns:ns='http://example.com'><ns:child>content</ns:child></root>`
var root Root
err := xml.Unmarshal([]byte(xmlData), &root)
if err != nil {
fmt.Printf("解析错误: %v", err)
return
}
fmt.Printf("解析结果: %+v\n", root)
}