登录
首页 >  Golang >  Go问答

重新排列 XML 标签的marshal方法

来源:stackoverflow

时间:2024-03-22 12:04:35 487浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《重新排列 XML 标签的marshal方法》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我为其导出 xml 的程序似乎希望 xml 标记按特定顺序排列,如下例所示

<xml>
  <tagtype1>data 1</tagtype1>
  <tagtype2>data 2</tagtype2>
  <tagtype1>data 3</tagtype1>
  <tagtype2>data 4</tagtype2>
</xml>

在 go 中,我编组为如下所示的结构

type xml struct {
  tagtype1 []string `xml:"tagtype1"`
  tagtype2 []string `xml:"tagtype2"`
}

当我将其整理出来时,它会对预期的标签进行排序,但这不是我需要的。

<xml>
  <tagType1>data 1</tagType1>
  <tagType1>data 3</tagType1>
  <tagType2>data 2</tagType2>
  <tagType2>data 4</tagType2>
</xml>

有没有办法使用encoding/xml包来重现第一个示例中的输出?顺序有所不同。我读取具有特定命令的 xml 文件,修改数据并编组返回。我需要保留标签顺序。


解决方案


你应该能够使用这样的东西:

type xml struct {
   Item []ItemStruct `xml:",any"`
}

type ItemStruct struct {
  XMLName xml.Name
  Value string `xml:",chardata"`
}

这样可以保持顺序,但是需要通过 item[i].xmlname 获取每个项目的元素名称

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>