2016-09-20 45 views
2

我有下面的XML:解析XML圍棋

<?xml version="1.0" encoding="utf-16"?> 
<ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <anyType xsi:type="xsd:dateTime">2016-09-14T13:58:30Z</anyType> 
    <anyType xsi:type="xsd:decimal">1.2</anyType> 
</ArrayOfAnyType> 

我試圖把它解組到這個結構:

type Value struct { 
    XMLName xml.Name `xml:"ArrayOfAnyType"` 
    Data []Data `xml:"anyType"` 
} 

type Data struct { 
    Key string `xml:"xsi:type,attr"` 
    Value string `xml:",chardata"` 
} 

沒有拋出錯誤,但由此產生的價值觀結構是空的。我嘗試了幾個我在網上找到的例子,但我對Go很陌生,所以我可能會錯過一些明顯的東西。

+0

我第一次嘗試使用go,改爲utf-8:https://play.golang.org/p/nLrdzuUSo0 – Hackerman

回答

4

首先,你的文檔聲明它是用UTF-16編碼的,這意味着你需要設置解碼器的CharsetReader,或者刪除它並將文檔解釋爲UTF-8。

其次,您的xsi:type,attr應使用名稱空間URL,因此它的編號爲http://www.w3.org/2001/XMLSchema-instance type,attr

考慮到這兩點,你的工作原理:https://play.golang.org/p/Nu3wyEQ_dO

+0

工程就像一個魅力。謝謝! –