I have a flat XML structure, which I want to unmarshall in to a struct which has one part embedded. Is this possible? What is the syntax, or what custom method can I write?
In this example, I tag the nested struct with a guess: xml:""
, which is skipped over by "encoding/xml".
type FloatHolder struct {
Value float32 `xml:"value"`
}
type pv struct {
XMLName xml.Name `xml:"series"`
Test1 FloatHolder `xml:""` // does not populate :-(
Test2 FloatHolder `xml:"nested"` // populates
}
func main() {
contents := `<series>
<nested>
<value>1234</value>
</nested>
<value>1234</value>
</series>`
m := &pv{}
err := xml.Unmarshal([]byte(contents), &m)
if err != nil {
panic(err)
}
fmt.Printf("%f %f
", m.Test1.Value, m.Test2.Value)
}
Output: "0.000000 1234.000000"
Playground: https://play.golang.org/p/aEdDLFYqL5
Thanks!