我有一个带有XML片段的字符串,我想将它注入编码流:
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()
或类似的东西来做到这一点吗?
答案 0 :(得分:1)
插入原始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周围结构的标签,这一点很重要。