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中即可, 十分麻烦。

⤧  Next page github验证从https到ssh ⤧  Previous page golang xml解析不确定是否存在的元素