实例1:
//main package main import ( "encoding/xml" "fmt" ) type person struct { Name string Age int } func main() { p := person{Name: "sary", Age: 20} if data, err := xml.MarshalIndent(p, "", " "); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } }
输出:
D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]
Success: process exited with code 0.
D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]
<person>
<Name>sary</Name>
<Age>20</Age>
</person>
Success: process exited with code 0.
实例2
//main
package main
import (
"encoding/xml"
"fmt"
)
type person struct {
Name string
Age int
}
func main() {
p := person{Name: "sary", Age: 20}
var data []byte
var err error
if data, err = xml.MarshalIndent(p, "#", " "); err != nil {
fmt.Println(err)
return
}
fmt.Println(string(data))
p2 := new(person)
if err = xml.Unmarshal(data, p2); err != nil {
fmt.Println(err)
return
}
fmt.Println(p2)
}
输出:
D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]
Success: process exited with code 0.
D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]
#<person>
# <Name>sary</Name>
# <Age>20</Age>
#</person>
&{sary 20}
Success: process exited with code 0.
实例3:(设置标签属性)
//main package main import ( "encoding/xml" "fmt" ) type person struct { Name string `xml:"Name,attr"` Age int `xml:"Age,attr"` } func main() { p := person{Name: "sary", Age: 20} var data []byte var err error if data, err = xml.MarshalIndent(p, "#", " "); err != nil { fmt.Println(err) return } fmt.Println(string(data)) p2 := new(person) if err = xml.Unmarshal(data, p2); err != nil { fmt.Println(err) return } fmt.Println(p2) }
输出:
D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]
Success: process exited with code 0.
D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]
#<person Name="sary" Age="20"></person>
&{sary 20}
Success: process exited with code 0.
原文地址:https://www.cnblogs.com/saryli/p/11038085.html