Das XML-Format I entpacken müssen, ist wie folgt:golang XML nicht Abstellungs-ing richtig
data := `
<table>
<name>
<code>23764</code>
<name>Smith, Jane</name>
</name>
<name>
<code>11111</code>
<name>Doe, John</name>
</name>
</table>
`
Ich habe die folgenden Strukturen und Code ohne Erfolg versucht:
type Customers struct {
XMLName xml.Name `xml:"table"`
Custs []Customer
}
type Customer struct {
XMLName xml.Name `xml:"name"`
Code string `xml:"code"`
Name string `xml:"name"`
}
...
var custs Customers
err := xml.Unmarshal([]byte(data), &custs)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("%v", custs)
for _, cust := range custs.Custs {
fmt.Printf("Cust:\n%v\n", cust)
}
Die Palette Drucke nichts aus, und das Drucken custs
gibt mir nur {{ table} []}
Brilliant - das funktioniert. Aus irgendeinem Grund dachte ich, ich müsste XMLName verwenden, um den Titel des Felds anzugeben, wenn es nicht übereinstimmte. – Darrrrrren
Der Zweck für die Verwendung von 'xml.Name' besteht darin, das übergeordnete Tag zur Laufzeit zu überschreiben, da sein Wert ebenfalls berücksichtigt wird. Sie können also den Wert von 'xml.Name' für die' table'-Struktur verwenden und die Customers-Struktur für eine ähnlich aussehende XML-Struktur mit einem anderen übergeordneten Tag-Namen erneut verwenden. – nemo