【问题标题】:Golang XML Marshal with namespaces带有命名空间的 Golang XML Marshal
【发布时间】:2022-05-18 23:01:54
【问题描述】:

我正在使用 golang xml 来编组/解组它。我想在元帅之后输入和输出。

这是我的例子:

https://play.golang.org/p/KH6mFXLVdH

xml 输入的标签名称带有命名空间,例如:x14:dataValidation

在从输入 xml 解组的 Marshal 数据之后,我希望标签名称相同。

有什么解决办法吗?

谢谢

【问题讨论】:

标签: xml go


【解决方案1】:

我从事的最后一个大量使用 XML 的项目也遇到了同样的问题。正如@algrebe 提到的,这似乎是 Go 标准库的 XML 实现中的一个突出问题。您可以使用其他支持命名空间的 XML 库。我在https://github.com/beevik/etree 上取得了相当大的成功。

【讨论】:

    【解决方案2】:

    参考您的示例,您需要包含 XMLName 元素并在 xml 输出参数中传递架构命名空间和元素名称:

    type Ext struct {
        XMLName         xml.Name `xml:"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main ext"`
        XmlnsMx         string   `xml:"mx,attr,omitempty"`
        XmlnsX14        string   `xml:"x14,attr,omitempty"`
        URI             string   `xml:"uri,attr"`
        MxPLV           *MxPLV
        DataValidations *X14DataValidations
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多