在Golang的XML字符串中添加外部标签

时间:2018-10-09 23:06:21

标签: xml go

我想知道是否可以将外部标签添加到给定的XML字符串中。 例如,用

包裹我的XML字符串

输入:

<My><XML><String>Something Here...</String></XML></My>

输出:

<OuterTag><My><XML><String>Something Here...</String></XML></My></OuterTag>

我尝试了xml.Encoder.EncodeToken(),xml.Encoder.Encode(),但没有成功。

之所以问这个问题,是因为我希望将XML包装到SOAP信封中,因为Golang不内置SOAP支持。

任何想法都值得赞赏!

1 个答案:

答案 0 :(得分:0)

我想出了一种方法,可能不是最好的方法,但是它可行。 只需利用xml.Encoder.EncodeToken()

原始xml是实现xml.Token接口的CharData。 “ OuterTag”是StartElement,它也实现xml.Token接口。

encoder := xml.NewEncoder(buf)
outerTag := xml.StartElement {Name: xml.Name{Space:"", Local:"OuterTag"}}
encoder.EncodeToken(outerTag)
defer encoder.EncodeToken(outerTag.End())
encoder.EncodeToken(originalXmlBytes)