小编Wil*_*ang的帖子

XML unmarshal不尊重根元素名称空间前缀定义

这是XML结构:

<root xmlns:test="http://test.com/testns">
            <test:sub>
                <title>this is title</title>
            </test:sub>
</root>
Run Code Online (Sandbox Code Playgroud)

它将使用下面定义的结构进行解组:

type Root struct {
    XMLName xml.Name `xml:"root"`
    Sub *Sub
}

type Sub struct {
    XMLName       xml.Name `xml:"http://test.com/testns sub"`
    Title         string   `xml:"title"` 
}
Run Code Online (Sandbox Code Playgroud)

这就是编组回来的东西:

<root>
    <sub xmlns="http://test.com/testns">
        <title>this is title</title>
    </sub>
</root>
Run Code Online (Sandbox Code Playgroud)

在marshal和sub元素使用url名称空间而不是前缀之后,将删除根名称空间前缀定义.这是代码

有没有什么方法可以使marshal/unmarshal不改变xml结构?谢谢!

go xml-parsing

6
推荐指数
1
解决办法
1049
查看次数

标签 统计

go ×1

xml-parsing ×1