0
我有xml数据解组成字符串[“13.64.196.27/32”,“13.64.198.19/32”],但得到错误“undefined:产品”在它的一开始。我有产品结构定义...不知道它对我的要求。见下文和play.golang.org/p/Ak6bx3BLwq如何unmarshal Go xml?
func main() {
data := `<products updated="9/1/2017">
<product name="o365">
<addresslist type="IPv4">
<address>13.64.196.27/32</address>
<address>13.64.198.19/32</address>
</addresslist>
</product>
</products>`
type Azure struct {
XMLName xml.Name `xml:"products"`
Products []Product `xml:"product"`
}
type Product struct {
XMLName xml.Name `xml:"product"`
Name string `xml:"name,attr"`
List []List `xml:"addresslist"`
}
type List struct {
XMLName xml.Name `xml:"addresslist"`
Type string `xml:"type,attr"`
Address []string `xml:"addressList>address"`
}
var products Azure
xml.Unmarshal([]byte(data), &products)
fmt.PrintLn(products.List.Address)
}
日Thnx了很多,你知道为什么它打印空片{{产品} {{}产品O365 [{{} AddressList中的IPv4 [ ]}]}]}?我期望“13.64.196.27/32”,“13.64.198.19/32”在 – irom
里面'你应该定义变量出函数实现' - >定义函数内的命名类型是有效的,有时特别是对于解组的东西IMHO,因为你有时从不需要代码中其他任何地方的类型。 – Carpetsmoker
@Carpetsmoker这是一个好主意。我需要更频繁地这样做。我的一些代码充斥着从SQL返回的部分视图,这些视图在其他地方没有任何用处,但却使整个包变得混乱。也就是说,确保你不要尝试在别处使用相同的struct Name,否则事情会变得非常混乱。 – RayfenWindspear