go解析XML

go解析XML会遵循以下原则:

  • 如果struct的一个字段是string或者[]byte类型且它的tag含有",innerxml",Unmarshal将会将此字段所对应的元素内所有内嵌的原始xml累加到此字段上
  • 如果struct中有一个叫做XMLName,且类型为xml.Name字段,那么在解析的时候就会保存这个element的名字到该字段
  • 如果某个struct字段的tag定义中含有XML结构中element的名称,那么解析的时候就会把相应的element值赋值给该字段
  • 如果某个struct字段的tag定义了中含有",attr",那么解析的时候就会将该结构所对应的element的与字段同名的属性的值赋值给该字段
  • 如果某个struct字段的tag定义 型如"a>b>c",则解析的时候,会将xml结构a下面的b下面的c元素的值赋值给该字段
  • 如果某个struct字段的tag定义了"-",那么不会为该字段解析匹配任何xml数据
  • 如果struct字段后面的tag定义了",any",如果他的子元素在不满足其他的规则的时候就会匹配到这个字段
  • 如果某个XML元素包含一条或者多条注释,那么这些注释将被累加到第一个tag含有",comments"的字段上,这个字段的类型可能是[]byte或string,如果没有这样的字段存在,那么注释将会被抛弃
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容