XML 编码 : inject XML into output

标签 xml go

我有一个带有 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>&lt;mytag&gt;foo&lt;/mytag&gt;</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/

相关文章:

java - 是否可以在 Saxon 中缓存 XML 文档以避免重新解析和重新索引?

oracle - 使用 Oracle 调用接口(interface) (OCI) 设置操作系统用户

go - 对指针和值参数新主义感到困惑

json - 如何构建界面?

java - 在 SQLite 中使用 Between 不返回每周数据

java - LinearLayout addview() 禁用第一个 child 的 margin

python - 将结果集转换为字符串并放入列表中

xml - 如何使用 java 和 Eclipse 从 XML 文件创建 XSD?

GoLang 约定 - 从 slice 创建自定义类型

http - google.com 的 golang 反向代理