当前位置: 首页 > 面试题库 >

将XML解组到地图中

乐正宜人
2023-03-14
问题内容

如标题所示,我试图将XML直接解组到地图中,而不必先解组为结构,然后将结构转换为地图。我正在处理相当大的数据集,并且双重转换所花费的时间比预期的要多。

如果有人能对此提供任何指导,将不胜感激。

XML:重复classAccesses,还有其他一些元素。

<classAccesses>
    <apexClass>AccountRelationUtility</apexClass>
    <enabled>true</enabled>
</classAccesses>

我当前的结构:我首先解析出每个标头元素,然后使用子元素创建一个新结构

type classAccesses struct {
    ApexClass string `xml:"apexClass"`
    Enabled   string `xml:"enabled"`
}

type diffs struct {
    ClassAccesses []classAccesses `xml:"classAccesses"`
}

所需的地图:我想保留diffs结构,但我希望子结构“ ClassAccesses”与下面的地图相似。

map[string]string {
    "ApexClass": "enabled"
}

问题答案:

从Go 1.3开始,无法使用标准Go库将XML文档直接解组到地图中。

这里提供了标准库的XML部分,http://golang.org/pkg/encoding/xml/,没有任何函数可以完全满足您在问题中的要求。

根据您的具体情况,您可能还有其他选择,例如:

  • 并行化您的算法,即从文件中读取并同时解码。仅当您要读取多个文件时,此方法才能很好地工作。
  • 在Go中编写您自己的XML解码算法。


 类似资料:
  • 问题内容: 我有一个非常简单的JSON文件,类似这样,但是有成千上万个字符串: 我想把水果装入一个 最好的方法是什么?有没有一种方法我不需要遍历每个元素并使用循环插入到地图中? 问题答案: 这是示例,您可以在没有任何结构的情况下解组字符串列表。 或者可以使用字符串列表代替字符串列表

  • 我一直试图将xml(作为字符串)解组到一个对象,但它返回了一个NullPointerException错误。我花了一周时间寻找解决方案,但似乎什么都没用。我已经多次修改了“unmarshallpacs008”方法和“Spienvelessage”类,尝试了我在论坛上找到的其他东西。 在调试代码时,我看到错误发生在“unmarshaller.unmarshal”点,在该点上,“SpinevelMes

  • 问题内容: 我发现很多文章描述了如何将XML元素序列编组到HashMap,只要它们在“父”元素内。但是,我不希望它直接与root元素下的孩子一起工作! 选项1-运作: 选项2 -难道 不 工作: 检查: 检查: CheckMapType: ChecksAdapter: 这是(一些虚拟测试行)我如何生成类/调用解组的方法: 关于如何使选项2起作用的任何想法吗?当使用列表而不是Map时它可以工作,但是

  • 问题内容: 我的websocket服务器将接收和解组JSON数据。此数据将始终包含在具有键/值对的对象中。密钥字符串将用作值标识符,告诉Go服务器它是哪种值。通过知道值的类型,我可以继续进行JSON解组值到正确的结构类型。 每个json对象可能包含多个键/值对。 JSON示例: 有什么简单的方法可以使用软件包来做到这一点? 感谢您的任何建议/帮助! 问题答案: 可以通过将其编组为。 要进一步解析,

  • 问题内容: 我的websocket服务器将接收和解组JSON数据。此数据将始终包含在具有键/值对的对象中。密钥字符串将用作值标识符,告诉Go服务器它是哪种值。通过知道哪种类型的值,我可以进行JSON解组值到正确的struct类型。 每个json对象可能包含多个键/值对。 JSON示例: 有什么简单的方法可以使用软件包来做到这一点? 感谢您的任何建议/帮助! 问题答案: 可以通过将其编组为一个文件来

  • XML响应 我为电影和图像创建了pojo类。 Film.java 形象JAVA 请帮助我是新来的,我应该使用JAXB。 解决方案: 我已经加了 在Image的getter方法中,我添加了@xmlement(name=“Image”)。 在Image类中,我添加了一个注释@XmlRootElement(name=“Image”),它提供了我想要的东西。