我有一个带有 XML 片段的字符串,我想将它注入(inject)编码流:
package main
import (
"encoding/xml"
"os"
)
func main() {
myxml := `<mytag>foo</mytag>`
enc := xml.NewEncoder(os.Stdout)
root := xml.StartElement{Name: xml.Name{Local: "root"}}
enc.EncodeToken(root)
enc.EncodeToken(xml.CharData(myxml))
enc.EncodeToken(root.End())
enc.Flush()
}
我得到 <root><mytag>foo</mytag></root>
但我想要<root><mytag>foo</mytag></root>
有什么方法可以使用 enc.EncodeToken()
来做到这一点吗?或者类似的东西?
最佳答案
插入原始 XML 的唯一方法是将其直接写入流,在本例中为 os.Stdout。
myxml := `<mytag>foo</mytag>`
enc := xml.NewEncoder(os.Stdout)
root := xml.StartElement{Name: xml.Name{Local: "root"}}
enc.EncodeToken(root)
enc.Flush()
os.Stdout.WriteString(myxml)
enc.EncodeToken(root.End())
enc.Flush()
如果您使用 innerxml
struct 标签,这很重要,但这只能通过一个结构来完成,并且会为您提供一组代表原始 xml 周围结构的标签。
关于XML 编码 : inject XML into output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33551110/