func (r *Response) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { stype := r.Type(start) if stype != "ArrayOfDataObject" { v := Values{} if err := d.DecodeElement(&v, &start); err != nil { return err } r.Values = append(r.Values, v) return nil } for { t, err := d.Token() if err != nil { if err == io.EOF { return nil } return err } if s, ok := t.(xml.StartElement); ok { if s.Name.Local == "DataObject" { v := Values{} if err := d.DecodeElement(&v, &s); err != nil { return err } r.Values = append(r.Values, v) } } } }