On Thu, 24 Nov 2016 22:20:44 -0800 (PST)
Chris S <chris.sanic...@gmail.com> wrote:

>  I am working on trying to parse an xml file with my go code. But I
> keep on getting an error saying:
> 
> ./main_v4.go:155: aggInfoXml.IpAddr.Hports undefined (type []Addr has
> no field or method Hports)
[...]
> type AggInfoXml struct {
>     Percent     IntPercent  `xml:"taskprogress,omitempty"`
>     IpAddr      []Addr      `xml:"host>address,omitempty"`
> }
> 
> type IntPercent struct {
>     Value float64 `xml:"percent,attr,omitempty"` // works
> }
> 
> 
> type Addr struct {
>     Ip      string   `xml:"addr,attr"`
>     Hports  []Ports  `xml:"host>ports>port,omitempty"` //failing to
> be recognized
> }
[...]
>     for _, port := range aggInfoXml.IpAddr.Hports {
>         fmt.Printf("Port: %s\n", port.ports())
>     }

The IpAddr field of the AggInfoXml struct is a slice.
Slices have no fields; but they have elements which should be accessed
through the indexing operation, like in aggInfoXml[0] for instance.

Hence "aggInfoXml.IpAddr.Hports" has no sense at all.

You might want to use

  for _, addr := range range aggInfoXml.IpAddr {
    for _, port := range addr.Hports {
    }
  }

or something like this -- that is, Hports is only defined on instances
of type Addr, not on slices of this type.

[...]

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to