2016-07-26 18 views
1

我有一個看起來像這樣的XML:解析簡單值的XML數組中去

<MyElement> 
    <Ids> 
     <int>1</int> 
     <int>2</int> 
    </Ids> 
</MyElement> 

我覺得挑戰中去分析。我試過以下

type MyElement struct { 
    Ids int[] 
} 

甚至

type Ids struct { 
    id int[] `xml:"int"` 
} 

type MyElement struct { 
    Ids Ids 
} 

但它永遠不會回升。

困難在於所有元素都被稱爲int並且只存儲一個int值,而不是通常的鍵/值對。

回答

2

你需要指定的路徑int元素:

type MyElement struct { 
    Ids []int `xml:"Ids>int"` 
} 

https://play.golang.org/p/HfyQzOiSqa

你也可以這樣做是爲了不重複 「IDS」

type MyElement struct { 
    Ids []int `xml:">int"` 
} 

此功能被提及在xml.Unmarshal's documentation

  • 如果XML元素包含一個子元素,其名稱格式化爲一個標籤的前綴相匹配 「一」或「A> B> C」,解組 將下降到尋找與元素的XML結構 給定名稱,並將內部元素映射到該結構 字段。以「>」開頭的標籤相當於一個起始 ,字段名稱後跟「>」。