You don't have to use an xml.Decoder. You may be able to use the
`xml:",any"` tag for this case.

type Response struct {
XMLName xml.Name
Return  string `xml:"return"`
}
type Outer struct {
XMLName   struct{}   `xml:"outer"`
Responses []Response `xml:",any"`
}


https://play.golang.org/p/j4w4-1uuYae



On Sun, Feb 24, 2019 at 9:28 AM Steffen Wentzel <syncropr...@gmail.com>
wrote:

> Thanks for the response. I was hoping it would be possible with just
> xml.Unmarshal.
>
> I now have this implementation - any comments on that? (I'm okay with
> returning the error inline, it's just for logging purposes):
>
> Playground: https://play.golang.org/p/6J8XndWdlv_N
>
> func id2(axl []byte) string {
> dec := xml.NewDecoder(bytes.NewReader(axl))
> for {
> tok, err := dec.Token()
> if err != nil {
> if err == io.EOF {
> return "token not found"
> }
> return fmt.Sprintf("error decoding XML: %v", err)
>
> }
> if tok, ok := tok.(xml.StartElement); ok {
> if tok.Name.Local == "return" {
> var id string
> err := dec.DecodeElement(&id, &tok)
> if err != nil {
> return fmt.Sprintf("error decoding return element: %v", err)
> }
> return id
> }
> }
> }
> }
>
>
>
> Am Samstag, 23. Februar 2019 20:53:07 UTC+1 schrieb Tamás Gulácsi:
>>
>> Walk over it usin xml.Decoder.Token, and UnmarshalElement when found a
>> StartToken with a proper Name.Local.
>
> --
> 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.
>

-- 
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