Initial code for XML sample

Covers marshal/unmarshal of a simple un-nested type.

No .sh file yet
This commit is contained in:
Eli Bendersky 2019-07-11 07:11:19 -07:00 committed by Mark McGranaghan
parent 78e1fd61ec
commit 62bfb159ac

32
examples/xml/xml.go Normal file
View File

@ -0,0 +1,32 @@
package main
import (
"encoding/xml"
"fmt"
)
type Plant struct {
XMLName xml.Name `xml:"fruit"`
Id int `xml:"id,attr"`
Name string `xml:"name"`
Origin []string `xml:"origin"`
}
func (p Plant) String() string {
return fmt.Sprintf("Fruit id=%v, name=%v, origin=%v",
p.Id, p.Name, p.Origin)
}
func main() {
coffee := &Plant{Id: 27, Name: "Coffee"}
coffee.Origin = []string{"Ethiopia", "Brazil"}
out, _ := xml.MarshalIndent(coffee, " ", " ")
fmt.Println(string(out))
var p Plant
if err := xml.Unmarshal(out, &p); err != nil {
panic(err)
}
fmt.Println(p)
}