java - 将 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+"]";
}
}
解决方案
创建xsd
架构文件。您可以在 eclipse 中获取可以xml
将xsd
. 使用诸如 等框架jibx
创建jaxb
模式类。这些库具有将对象转换为的类,xml
反之亦然。
推荐阅读
- html - 来自 DIV 类的 Web 抓取字段,VBA 错误
- ecmascript-6 - 一行 ES6 更改 Array 中的一项
- java - 如何在java中将unicode转换为int?
- python-3.x - 如何检查文本是否包含 Jinja2 表达式?
- python - 如何使用 Python Pandas 计算向后跳过行的平均值?
- fetch - 获取 [object HTMLDivElement] 而不是内容
- java - Java:BigDecimal 向上舍入百万数
- django - 当请求方法为 GET 时,Django REST 框架正在更改对象值
- php - ?? 的运算符优先级 操作员
- python - 每个输入的动态 PCollection