ho una struttura XML come questa:Golang: Analizzare sia il valore dell'elemento XML e gli attributi per i gruppi
<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>
Non so come ho potuto capire entrambi i valori e gli attributi per gli elementi SubItemField, il mio codice è qualcosa di simile:
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"`
}
ho bisogno di entrambi gli attributi e valori, ma l'unico modo per ottenere i valori che so è semplicemente usare
SubItemField []float32
anziché il mio tipo personalizzato. Sto usando xml.Unmarshal btw.
Qualche idea?
Grazie.
Da Godocs per encoding/xml: '- un campo con tag", chardata "è scritto come dati carattere, non come elemento XML. –
Per evitare confusione e chiarire il commento di @SamWhited ...", chardata "si riferisce semplicemente ai dati di carattere interno dell'elemento xml, quindi quando si scrive in xml i dati vengono semplicemente scritti nell'elemento come caratteri, e quando vengono letti dall'xml è semplice da leggere come caratteri. Il tipo di dati scritti o letti non ha importanza finché i dati possono essere forzati in quel tipo. –
Grazie, in retrospettiva, che è stato confuso. Stavo solo cercando di far notare che "non c'è documentazione" era un'affermazione errata, è documentata nel pacchetto encoding/xml. –