这是XML结构:
<root xmlns:test="http://test.com/testns">
<test:sub>
<title>this is title</title>
</test:sub>
</root>
使用以下定义的结构进行解组:
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"`
}
这就是被编组的东西:
<root>
<sub xmlns="http://test.com/testns">
<title>this is title</title>
</sub>
</root>
在marshal和sub元素使用url名称空间而不是前缀之后,将删除根名称空间前缀定义。这是code
maullhal / unmarshal有没有办法改变xml结构?谢谢!
答案 0 :(得分:0)
它看起来并没有改变逻辑结构。在原始输入中,root
元素为名称空间test
声明了前缀http://test.com/testns
,但它实际上并未声明自己位于该名称空间中。
这是一个替代版本,可以执行您想要的内容:https://play.golang.org/p/NqNyIyMB4IP
我将命名空间提升到Root
结构,并将test:
前缀添加到输入中的root
xml元素。