Go-解组XML,属性问题
也许有人能给我们一些启示。。。我似乎在使用encoding/XML库时遇到了麻烦 就我而言,我无法从Go-解组XML,属性问题,go,xml-parsing,Go,Xml Parsing,也许有人能给我们一些启示。。。我似乎在使用encoding/XML库时遇到了麻烦 就我而言,我无法从复制有效的XML属性 基本上,我将从GPS文件中解组XML数据,然后将其编组回另一个文件。除了根XML的属性标记之外,其他一切都正常工作 我试过各种各样的方法 func (c *gpx) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {} 类型方法无效 基本上,我只希望根标记正确分配所有属性。我无法理解为什么不能执行Att
func (c *gpx) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {}
类型方法无效
基本上,我只希望根标记谢谢。不幸的是,默认的Go XML编码器无法对以下内容进行编码
xmlns:foo="http://example.com/Foo-V1" foo:attr="bar"
因为,它根据URL选择名称,您不能自己定义名称空间。Go编码器发出的代码如下所示,AFAIK基本上等同于上述代码:
xmlns:Foo-V1="http://example.com/Foo-V1" Foo-V1:attr="bar"
这里唯一不同的是名称空间的前缀
至于其他名称空间的前向声明,我建议只在需要它们的元素和属性上声明它们。也就是说,对类似的东西进行编码
<foo xmlns:bar="http://example.com/Bar-V1">
<bar:elem>Hello world</bar:elem>
</foo>
它序列化为
<foo>
<elem xmlns="http://example.com/Bar-V1">Hello world</elem>
</foo>
你好,世界
操场:。欢迎来到SO。作为提示,添加一个带有“帮助他人”的链接可以帮助您。感谢您的回复。我在围棋场上放了一些密码。我相信这也复制了我的问题。您的问题是那些应该是
xmlns:foo
的\u xmlns:foo
?名称空间是问题之一,但输出XML属性与传入属性有很大不同。例如,如果我在一个巨大的GPS文件上运行我的程序,它将不会导入Garmin Basecamp,直到我替换<foo>
<elem xmlns="http://example.com/Bar-V1">Hello world</elem>
</foo>