golang xml解析不确定是否存在的元素

golang xml解析不确定是否存在的元素,第1张

概述golang中负责解析函数 func Unmarshal(data []byte, v interface{}) error 只能对struct, slice和string进行解析 golang中负责生成xml函数 func Marshal(v interface{}) ([]byte, error)marshal可以处理指针指向的值, 若指针为nil, 则不会写入到xml中. 我们可以在定义解析

golang中负责解析函数

func Unmarshal(data []byte,v interface{}) error

只能对struct,slice和string进行解析

golang中负责生成xml函数

func Marshal(v interface{}) ([]byte,error)
marshal可以处理指针指向的值,若指针为nil,则不会写入到xml中.

我们可以在定义解析的struct结构时,将元素的类型定义为指针类型,若解析时不存在该元素,则在marshal时不会生成空的元素.

type ObjectInfo struct {  // attr  ObjectType string `xml:"ObjectType,attr"`  ID string `xml:"ID,attr"`  name string `xml:"name,attr"`  CreationDate string //`xml:"CreationDate"` // struct tag is not necessary  // tag  Tag []TagInfo `xml:"TagCollection>Tag"`  // colorValues  RefSpecdata *ReflectanceSpectrumInfo `xml:"colorValues>ReflectanceSpectrum"`  colorLabData *colorCIELabInfo `xml:"colorValues>colorCIELab"`  colorDensityData *colorDensityInfo `xml:"colorValues>colorDensity"`  //colorValues PrintDataInterface `xml:",innerxml"`  // DevicecolorValues  colorCMYKPlusNData *colorCMYKPlusNInfo `xml:"DevicecolorValues>colorCMYKPlusN"`  colorCMYKData *colorCMYKInfo `xml:"DevicecolorValues>colorCMYK"`  //DevicecolorValues PrintDataInterface `xml:",innerxml"`}
上面结构是在解析CxF定义的结构,扫描后生成的数据类型是不确定的,但又是固定的几组结构,指针类型能很好的解决这个问题. 总结

以上是内存溢出为你收集整理的golang xml解析不确定是否存在的元素全部内容,希望文章能够帮你解决golang xml解析不确定是否存在的元素所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存