请教一个 XML 序列化问题

讨论 未结 0 51
seers
seers 会员 2022年6月2日 15:58 发表
<p>我要生成如下 xml 文件</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;svc_init ver="2.0.0"&gt; &lt;sms ver="2.0.0"&gt; &lt;client&gt; &lt;id&gt;id&lt;/id&gt; &lt;pwd&gt;pwd&lt;/pwd&gt; &lt;serviceid&gt;serviceid&lt;/serviceid&gt; &lt;/client&gt; &lt;sms_info&gt; &lt;phone&gt;13013001300&lt;/phone&gt; &lt;content&gt;测试&lt;/content&gt; &lt;/sms_info&gt; &lt;/sms&gt; &lt;/svc_init&gt; </code></pre> <p>代码为</p> <pre><code>package main import ( "encoding/xml" "fmt" "os" ) type Client struct { Id string `xml:"client&gt;id"` Pwd string `xml:"client&gt;pwd"` Serviceid string `xml:"client&gt;serviceid"` } type Sms_info struct { Phone string `xml:"sms_info&gt;phone"` Content string `xml:"sms_info&gt;content"` } type Sms struct { XMLName xml.Name `xml:"sms"` Ver string `xml:"ver,attr"` Client Sms_info } type Svc_init struct { XMLName xml.Name `xml:"svc_init"` Ver string `xml:"ver,attr"` Sms } func main() { id := "id" pwd := "pwd" serviceid := "serviceid" client := Client{Id: id, Pwd: pwd, Serviceid: serviceid} sms_info := Sms_info{Phone: "13013001300", Content: "测试"} sms := Sms{Ver: "2.0.0", Client: client, Sms_info: sms_info} v := Svc_init{Ver: "2.0.0", Sms: sms} fmt.Println(v) output, _ := xml.MarshalIndent(v, " ", " ") os.Stdout.Write(output) } </code></pre> <p>运行后生成</p> <pre><code>&lt;svc_init ver="2.0.0"&gt; &lt;client&gt; &lt;id&gt;id&lt;/id&gt; &lt;pwd&gt;pwd&lt;/pwd&gt; &lt;serviceid&gt;serviceid&lt;/serviceid&gt; &lt;/client&gt; &lt;sms_info&gt; &lt;phone&gt;13013001300&lt;/phone&gt; &lt;content&gt;测试&lt;/content&gt; &lt;/sms_info&gt; &lt;/svc_init&gt; </code></pre> <p>可以看到结果的 sms 结构丢失了 但是我直接打印 v 值</p> <pre><code>{{ } 2.0.0 {{ } 2.0.0 {id pwd serviceid} {13013001300 测试}}} </code></pre> <p>可以看到 sms 结构还在 请问为什么会这样,然后如何修复呢,感谢。</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
0个回复
  • 消灭零回复