如何从元帅重新排列XML标签

时间:2019-09-13 17:33:21

标签: xml go

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

<div style="width:1170px; margin: 0px 15px; display:inline-block">
<selector></selector> // here in this html file set width as 100%
</div>

在执行过程中,我将编组为以下结构

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

当我将其编组回去时,它将对期望的标签进行排序,但这不是我所需要的。

type xml struct {
  TagType1 []string `xml:"tagType1"`
  TagType2 []string `xml:"tagType2"`
}

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

1 个答案:

答案 0 :(得分:1)

您应该可以使用以下内容:

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

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

这样可以保留顺序,但是需要通过Item[i].XMLName

从每个项目中获取元素名称。