我有以下XML:
<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 {
Data []Data `xml:"anyType"`
}
type Data struct {
Key string `xml:"http://www.w3.org/2001/XMLSchema-instance type,attr"`
Value string `xml:",chardata"`
}
我最终想把他们整理成这种结构的json:
{
timestamp: [the value of xsi:type="xsd:dateTime"]
value: [the value of xsi:type="xsd:decimal"]
}
我是Go的新手,所以我不确定这是否可行。
答案 0 :(得分:1)
Go中的字段标记允许指定任意数量的不同值 - 以空格分隔。
因此,在您的简单情况下,只需在json:"value"
之后添加xml:"..."
,然后进行编组
JSON的unmarshaled值。
请注意,我指的是单个标记内的空格,而不是空格分隔的标记:
Field string `xml:"myns Xyzzy" json:"Blorb"`
在更复杂的情况下,可能需要具有用于解组的不同类型 和编组,以及铲除需要中间转换的数据 在这些类型的值之间。