首页 > 解决方案 > 在 Golang 中的 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 支持。

任何想法表示赞赏!

标签: xmlgo

解决方案


我想出了一个方法,可能不是最好的,但它有效。只需使用 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)

推荐阅读