-2
我是新来的,试图让下面一段代码无法运行。看起来我没有正确编码结构的结构部分。帮帮我!从结构中编码xml
package main
import (
"encoding/xml"
"fmt"
"os"
)
func main() {
type Person struct {
Email string `xml:"email"`
Phone string `xml:"phone"`
}
type Host struct {
Hostname string `xml:"hostname"`
Address string `xml:"address"`
}
type Asset struct {
person Person
host Host
}
p := &Person{Email: "[email protected]", Phone: "1111"}
h := &Host{Hostname: "boxen", Address: "1 Place St"}
a := &Asset{person: *p, host: *h}
enc := xml.NewEncoder(os.Stdout)
enc.Indent(" ", " ")
if err := enc.Encode(p); err != nil {
fmt.Printf("error: %v\n", err)
}
if err := enc.Encode(h); err != nil {
fmt.Printf("error: %v\n", err)
}
if err := enc.Encode(a); err != nil {
fmt.Printf("error: %v\n", err)
}
}
预期输出。我目前得到的是一个空的资产元素。
<Asset>
<Person>
<email>[email protected]</email>
<phone>1111</phone>
</Person>
<Host>
<hostname>boxen</hostname>
<address>1 Place St</address>
</Host>
</Asset>
你能更具体?它不起作用的是什么,你想要它做什么,它实际上做了什么? – Adrian
我是第二个@Adrian说的,而且还要做任何编码/解码你必须导出你的领域,资产没有。 – mkopriva