Для тех, кто интересно, вот пример, который туда и обратно упомянутый XML для перехода структур и обратно:
func TestXml(t *testing.T) {
type Id struct {
Code string `xml:"code,attr"`
Quantity int `xml:"quantity,attr"`
}
type Feed struct {
Version string `xml:"version,attr"`
Format string `xml:"format,attr"`
Date string `xml:"date,attr"`
Ids []Id `xml:"Ids>Id"`
}
x := []byte(`
<Feed version='1.03' format='FULL' date='2016-04-22T18:31:01.4988282+01:00'>
<Ids>
<Id code='000001' quantity='4' />
<Id code='000002' quantity='0' />
</Ids>
</Feed>
`)
f := Feed{}
xml.Unmarshal(x, &f)
t.Logf("%#v", f)
t.Log("Code 0:", f.Ids[0].Code)
b, _ := xml.Marshal(f)
t.Log(string(b))
}
Это производит следующий вывод:
xml_test.go:42: domain.Feed{Version:"1.03", Format:"FULL", Date:"2016-04-22T18:31:01.4988282+01:00", Ids:[]domain.Id{domain.Id{Code:"000001", Quantity:4}, domain.Id{Code:"000002", Quantity:0}}}
xml_test.go:43: Code 0: 000001
xml_test.go:46: <Feed version="1.03" format="FULL" date="2016-04-22T18:31:01.4988282+01:00"><Ids><Id code="000001" quantity="4"></Id><Id code="000002" quantity="0"></Id></Ids></Feed>
В документации для xml
содержатся прекрасные примеры.
Что вы хотите от него разобрать? Что вы пробовали? Где вы застряли? Ознакомьтесь с пакетом ['encoding/xml'] (https://golang.org/pkg/encoding/xml/), чтобы начать работу. – icza
У меня только что удалось разобраться. Мне не хватало «attr», чтобы получить атрибуты Id. – osmo