golang中encodingxml的使用注意事项

golang中encodingxml的使用注意事项,第1张

概述1.使用xml.Name的第一个名称作为整个XML文档的根节点。 2.凡是需要解析的XML内容,需要使用结构体的tag属性,反射出xml的特性,包含xml的名称,是否是属性、注释等。 3.凡是需要解析的节点,结构体的成员名称,首字母必须要大些 4.可以直接跳跃解析的父节点(该父节点只存在逻辑结构,并不存储任何数据或者属性),可以使用>来表征。 golang的文档上的例子 type Email st

1.使用xml.name的第一个名称作为整个XML文档的根节点。

2.凡是需要解析的XML内容,需要使用结构体的tag属性,反射出xml的特性,包含xml的名称,是否是属性、注释等。

3.凡是需要解析的节点,结构体的成员名称,首字母必须要大些

4.可以直接跳跃解析的父节点(该父节点只存在逻辑结构,并不存储任何数据或者属性),可以使用>来表征。


golang的文档上的例子

type Email struct {    Where string `xml:"where,attr"`    Addr  string}type Address struct {    City,State string}type Result struct {    XMLname xml.name `xml:"Person"`    name    string   `xml:"Fullname"`    Phone   string    Email   []Email    Groups  []string `xml:"Group>Value"`    Address}v := Result{name: "none",Phone: "none"}data := `    <Person>        <Fullname>Grace R. Emlin</Fullname>        <Company>Example Inc.</Company>        <Email where="home">            <Addr>gre@example.com</Addr>        </Email>        <Email where='work'>            <Addr>gre@work.com</Addr>        </Email>        <Group>            <Value>FrIEnds</Value>            <Value>Squash</Value>        </Group>        <City>Hanga Roa</City>        <State>Easter Island</State>    </Person>`err := xml.Unmarshal([]byte(data),&v)if err != nil {    fmt.Printf("error: %v",err)    return}fmt.Printf("XMLname: %#v\n",v.XMLname)fmt.Printf("name: %q\n",v.name)fmt.Printf("Phone: %q\n",v.Phone)fmt.Printf("Email: %v\n",v.Email)fmt.Printf("Groups: %v\n",v.Groups)fmt.Printf("Address: %v\n",v.Address)

Output:

XMLname: xml.name{Space:"",Local:"Person"}name: "Grace R. Emlin"Phone: "none"Email: [{home gre@example.com} {work gre@work.com}]Groups: [FrIEnds Squash]Address: {Hanga Roa Easter Island}
总结

以上是内存溢出为你收集整理的golang中encoding/xml的使用注意事项全部内容,希望文章能够帮你解决golang中encoding/xml的使用注意事项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1281788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存