I am pretty new to GO and I am having trouble extracting attribute values from XML documents. The code below produces the following output:
application ID:: "" application name:: ""
My assumption is that I am missing something when it comes to how to use tagging and I would really appreciate it if someone could point me in the right direction.
data:=`<?xml version="1.0" encoding="UTF-8"?>
<applist>
<app app_id="1234" app_name="abc"/>
<app app_id="5678" app_name="def"/>
</applist> `
type App struct {
app_id string `xml:"app_id,attr"`
app_name string `xml:"app_name"`
}
type AppList struct {
XMLName xml.Name `xml:"applist"`
Apps []App `xml:"app"`
}
var portfolio AppList
err := xml.Unmarshal([]byte(data), &portfolio)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("application ID:: %q
", portfolio.Apps[0].app_id)
fmt.Printf("application name:: %q
", portfolio.Apps[0].app_name)