6
XML形式は次のとおりです。golangのXMLは、私が非整列化する必要が適切に
data := `
<table>
<name>
<code>23764</code>
<name>Smith, Jane</name>
</name>
<name>
<code>11111</code>
<name>Doe, John</name>
</name>
</table>
`
私は無駄に以下の構造体とのコードを試みた:
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)
}
範囲を印刷何も出ていない、そして印刷custs
のみ私に与えます{{ table} []}
鮮やかな - うまくいきます。なんらかの理由で、フィールドのタイトルが一致しない場合はXMLNameを使用してフィールドのタイトルを示す必要があると考えました。 – Darrrrrren
'xml.Name'を使う目的は、実行時に親タグを値を無視して無視することです。したがって、 'table'構造体に' xml.Name'の値を使用し、親構造体タグ名が異なる類似したXML構造体に対してCustomers構造体を再利用することができます。 – nemo