Go 中的 Marshall 映射到 XML

2023-11-26

我尝试将地图输出为 XML 数据,但收到以下错误:

xml: unsupported type: map[string]int

编组映射对于 JSON 工作得很好,所以我不明白为什么它对于 XML 不能同样工作。使用 Struct 真的是唯一的方法吗?


我最终按照建议使用 xml.Marshaler 解决了这个问题Dave C

// StringMap is a map[string]string.
type StringMap map[string]string

// StringMap marshals into XML.
func (s StringMap) MarshalXML(e *xml.Encoder, start xml.StartElement) error {

    tokens := []xml.Token{start}

    for key, value := range s {
        t := xml.StartElement{Name: xml.Name{"", key}}
        tokens = append(tokens, t, xml.CharData(value), xml.EndElement{t.Name})
    }

    tokens = append(tokens, xml.EndElement{start.Name})

    for _, t := range tokens {
        err := e.EncodeToken(t)
        if err != nil {
            return err
        }
    }

    // flush to ensure tokens are written
    return e.Flush()
}

Source: https://gist.github.com/jackspirou/4477e37d1f1c043806e0

现在只需调用即可整理地图

output, err := xml.MarshalIndent(data, "", "  ")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go 中的 Marshall 映射到 XML 的相关文章

随机推荐

  • 有没有办法在 JavaScript 中反转 Intl.NumberFormat 的格式

    The Intl NumberFormat see Mozilla 的文档 在 Javascript 中提供了一种将数字格式化为当前语言环境版本的好方法 如下所示 new Intl NumberFormat format 3400 retu
  • emberjs处理401未授权

    我正在构建一个 ember js 应用程序 并且挂在身份验证上 json Rest 后端是rails 每个请求都使用会话 cookie 进行身份验证 warden 当用户第一次导航到应用程序根时 Rails 会重定向到登录页面 一旦会话被授
  • 在 Unity 中使用资源文件夹

    我正在开发一个 HoloLens 项目 需要引用 txt 文件 我将文件存储在 Unity 的 资源 文件夹中 并且它们工作得很好 通过 Unity 运行时 string basePath Application dataPath stri
  • Ruby on Rails:添加 Facebook 登录、Twitter 登录、OpenID 登录等的最佳方式

    我目前正在 Ruby on Rails 应用程序上运行 并使用 Authlogic 处理我的身份验证和用户管理 我正在努力寻找有关向我的网站添加第 3 方登录方法的最佳方法的最新信息 以补充标准注册和登录 那里有很多教程 但似乎都已经过时或
  • Scala 代码不获取 s3 文件

    我正在尝试运行 EMR 烫金作业 Scala 代码应该获取位于 S3 存储桶中的文本文件的内容 这scala io source库搞乱了 S3 路径的正确位置 我将参数 runidfile 提供给 EMR 作业 runidfile s3 m
  • 上下文无关语言问题(泵引理)

    我知道这与编程没有直接关系 但我想知道是否有人知道如何将泵引理应用于以下证明 显示L a n b n c m n m 不是上下文无关的语言 我对应用泵送引理非常有信心 但这一点真的让我很恼火 你怎么认为 编辑 我完全把你引入了错误的轨道 当
  • WordPress 永久链接结构更改问题

    我在 SO 上看到过一些关于这个问题的其他帖子 但是建议的解决方案都不适合我 所以我重新发布 将我的永久链接结构更改为 postname 所有链接均无效 我得到以下 404 信息 Not Found The requested URL my
  • 模拟所有物理按钮,例如 iOS 7 上主页按钮的压力(越狱)

    我试图在 iOS 7 上模拟 按下主页按钮 但之前在 iOS 6 上使用的方法不起作用 我当然指的是越狱设备 include GSEvent h void simulateHomeButton struct GSEventRecord re
  • 为什么我的课程不符合 CLS?

    这真让我困惑 我尝试删除只读 更改名称 我在这里做错了什么 public abstract class CatalogBase
  • 隐藏 URL 中传递的变量

    我们一直在开发一个 Web 应用程序 并且即将完成它 但有一件事困扰着我们 尽管它绝不会停止生产 当我们调用其中一个页面 index html 时 有时必须在 URL searchid 中向其传递一个变量 所以我们得到一个像这样的页面htt
  • 使用 rowwise() 计算数据帧每行中 NA 数量的问题

    我在使用 rowwise 计算每行中 NA 的数量时遇到问题 我的最小例子 df lt data frame Q1 c rep 1 1 rep NA 9 Q2 c rep 2 2 rep NA 8 Q3 c rep 3 3 rep NA 7
  • 如何在选项卡关闭时禁用 VS2013 中的 MRU 行为

    我已经将 ctl tab 和 ctrl shift tab 重新映射到 Window Next Tab 和 Window Previous Tab 但是当我调用 File Close 时 Visual Studio 2013 仍然使用 MR
  • SparkSQL SQL 查询写入 JDBC 表的是什么?

    用于 Spark 中的 SQL 查询 对于读取 我们可以通过以下方式读取 jdbc CREATE TEMPORARY TABLE jdbcTable USING org apache spark sql jdbc OPTIONS dbtab
  • Java 和 Xerces:找不到属性 XMLConstants.ACCESS_EXTERNAL_DTD

    我在此博客上查找了类似的帖子 但找不到我的问题的答案 因此我决定寻求帮助 我用 Java 编写了这个简单的函数 public void open InputStream stream throws FoliumFatalException
  • Python - 正确终止/退出期货线程?

    我之前使用的是threading Thread模块 现在我正在使用concurrent futures gt ThreadPoolExecutor 以前 我使用以下代码来退出 终止 完成线程 def terminate thread thr
  • 如何将枚举值传递给 wcf webservice

    ksoap2 可以将枚举传递给 web 服务吗 有一个wcf网络服务 OperationContract string TestEnum CodeType code CodeType 是 dotnet 枚举 public enum Code
  • 通过单击按钮更改 viewpager 片段

    我试图通过单击按钮来更改 viewpager 片段 我有 5 个片段 每个片段都有自己的 xml 文件 frag1 xml frag2 xml 等 每个片段都有 5 个按钮 可以转到 viewpager 的其他页面 但问题是如何在 Frag
  • 无法通过 PuTTY 连接到亚马逊 EC2 实例

    我在 Amazon Web Services AWS 中创建了一个新的 Amazon EC2 实例 参考文档 我什至添加了这样的 SSH 规则 Port 22 Type SSH Source
  • Calendar.Month 给出错误的输出

    我一直在使用java util对于所有日期和日历表示 但我在这里面临一个奇怪的问题 Calendar MONTH Calendar DAY OF MONTH等都给出错误的输出 但是当我使用Calendar getTime 我得到了正确的输出
  • Go 中的 Marshall 映射到 XML

    我尝试将地图输出为 XML 数据 但收到以下错误 xml unsupported type map string int 编组映射对于 JSON 工作得很好 所以我不明白为什么它对于 XML 不能同样工作 使用 Struct 真的是唯一的方