Format XML muszę unmarshal jest następujący:golang XML nie unmarshal-ing prawidłowo
data := `
<table>
<name>
<code>23764</code>
<name>Smith, Jane</name>
</name>
<name>
<code>11111</code>
<name>Doe, John</name>
</name>
</table>
`
próbowałem następujące konstrukcjom i kod bezskutecznie:
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)
}
drukuje zakres nic, i drukowanie custs
tylko daje mi {{ table} []}
Genialny - to działa. Z jakiegoś powodu myślałem, że muszę użyć XMLName do oznaczenia tytułu pola, jeśli nie pasuje. – Darrrrrren
Celem użycia 'xml.Name' jest nadpisanie tagu nadrzędnego w czasie wykonywania, ponieważ jego wartość również jest uznawana. Możesz więc użyć wartości 'xml.Name' dla struktury' table' i ponownie użyć struktury Customers w przypadku podobnej wyglądającej struktury XML z inną nazwą znacznika nadrzędnego. – nemo