Golang encoding/xml.Decoder.Decode() function example

package encoding/xml

Decode works like xml.Unmarshal, except it reads the decoder stream to find the start element.

Golang encoding/xml.Decoder.Decode() function usage example

 type xmlRegistry struct {
 Types []xmlType `xml:"types>type"`
 Enums []xmlEnumSet `xml:"enums"`
 Commands []xmlCommand `xml:"commands>command"`
 Features []xmlFeature `xml:"feature"`
 Extensions []xmlExtension `xml:"extensions>extension"`
 }

 func readSpecFile(file string) (*xmlRegistry, error) {
  var registry xmlRegistry
  f, err := os.Open(file)
  if err != nil {
 return nil, err
  }
  defer f.Close()
  err = xml.NewDecoder(f).Decode(&registry) // <----- here
  if err != nil {
 return nil, err
  }
  return &registry, nil
 }

Reference :

http://golang.org/pkg/encoding/xml/#Decoder.Decode

Advertisement