golang解析xml namespace prefix的bug
https://github.com/golang/go/issues/11496
示例使用链接中的示例, 我遇到的问题跟这个一样。<person xmlns:ns="ns">
<ns:name>Oliver</ns:name>
<ns:phone>110</ns:phone>
</person>
解析结构体定义如下:type Person struct {
XMLName xml.Name `xml:"ns person"`
Name string `xml:"ns name"`
Phone string `xml:"ns phone"`
}
Marshal后结果如下,缺少namespace ns<person xmlns="ns">
<name xmlns="ns">Oliver</name>
<phone xmlns="ns">110</phone>
</person>
UnMarshal:
type Person struct {
XMLName xml.Name `xml:"person"`
Name string `xml:"name"`
Phone string `xml:"phone"`
}
Marshal:
type Person2 struct {
XMLName xml.Name `xml:"ns:person"`
NS string `xml:"xmlns:ns,attr"`
Name string `xml:"ns:name"`
Phone string `xml:"ns:phone"`
}
NS变量在调用Marshal前赋值, 然后把Person的数据拷贝到Person2中即可, 十分麻烦。