Mam struktury XML tak:Golang: Przetwarza zarówno wartość elementu XML i atrybutów dla grup
<RootLevel status="new" timestamp="1383259529" xmlns="http://someplace.com">
<Item active="1" status="new" itemid="451254">
<SubItem active="1" recent="false" usertext="No idea" id="78421">
<SubItemField active="1" ready="no" type="1">1.4</SubItemField>
<SubItemField active="1" ready="yes" type="2">4.5</SubItemField>
</SubItem>
</Item>
</RootLevel>
nie wiem jak mogę zebrać obie wartości i atrybuty dla elementów SubItemField, mój kod jest coś takiego:
type RootLEvel struct {
XMLName xml.Name `xml:"RootLevel"`
...
Item []Item
}
type Item struct {
...
SubItem []SubItem
}
type SubItem struct {
...
SubItemField []SubItemField
}
type SubItemField struct {
Active bool `xml:"active,attr"`
Ready string `xml:"ready,attr"`
}
muszę oba atrybuty i wartości, ale to jedyny sposób, aby uzyskać wartości, które wiem, to wystarczy użyć
SubItemField []float32
zamiast mojego niestandardowego typu. Używam xml.Unmarshal btw.
Każdy pomysł?
Dzięki.
Od Godocy do kodowania/xml: '- pole ze znacznikiem", chardata "jest zapisywane jako dane znakowe, a nie jako element XML." –
Aby uniknąć nieporozumień i wyjaśnić komentarz @SamWhited ... ", chardata "odnosi się po prostu do wewnętrznych danych znakowych elementu xml, dlatego przy zapisie do xml dane są po prostu zapisywane w elemencie jako znaki, a podczas odczytywania z xml jest to proste czytanie jako znaki. Typ danych zapisywany lub odczytywany nie ma znaczenia, o ile dane mogą zostać przekształcone w ten typ. –
Dziękuję, z perspektywy czasu, która była myląca. Chciałem tylko wskazać, że "nie ma dokumentacji" było błędnym stwierdzeniem, jest to udokumentowane w pakiecie encoding/xml. –