首页 > 解决方案 > 将 xml 转换为 hashmap,反之亦然

问题描述

我有一个具有以下结构的 xml 架构:

<?xml version="1.0" encoding="UTF-8"?>
<page>
   <body>
      <item attr1="a1" attr2="a2" />
      <item attr1="a1" attr2="a2" attr3="a3" attr4="a4" attr_n="a_n" />
      <item attr1="a1" attr2="a2" attr3="a3" attr4="a4" attr_n="a_n">
         <element1>abc</element1>
         <element2>xyz</element2>
         <element_n>nnn</element_n>
      </item>
   </body>
</page>

项目标签可以有 n 个已知或未知的属性和元素。它也可能有也可能没有任何元素。

我想将此 xml 解析为 java pojo,我更喜欢使用 hashmap 作为字段item。它解析其余的东西,但元素/属性item没有被解析。它始终为空。任何有关如何实现这一目标的建议将不胜感激。

我的 pojo 结构是这样的:

页面.java


public class Page
{
    private Body body;

    public Body getBody ()
    {
        return body;
    }

    public void setBody (Body body)
    {
        this.body = body;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [body = "+body+"]";
    }
}

正文.java


public class Body
{
    private List<Map<String, Object>> item;

    public List<Map<String, Object>> getItem ()
    {
        return item;
    }

    public void setItem (List<Map<String, Object>> item)
    {
        this.item = item;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [item = "+item+"]";
    }
}

标签: javaxmlspring-bootxml-parsing

解决方案


创建xsd架构文件。您可以在 eclipse 中获取可以xmlxsd. 使用诸如 等框架jibx创建jaxb模式类。这些库具有将对象转换为的类,xml反之亦然。


推荐阅读