java – 使用JAXB解组嵌套的xml项列表
发布时间:2020-12-15 02:02:20 所属栏目:Java 来源:网络整理
导读:我有这样的xml结构,我需要使用JAXB转换为 java对象: elements elemet type/type property1/property1 property2/property2 items item id/id name/name /item ... item id/id name/name /item /items /element/elements 我应该将此构造转换为具有嵌套项目列
我有这样的xml结构,我需要使用JAXB转换为
java对象:
<elements> <elemet> <type></type> <property1></property1> <property2></property2> <items> <item> <id></id> <name></name> </item> ... <item> <id></id> <name></name> </item> </items> </element> </elements> 我应该将此构造转换为具有嵌套项目列表的元素,而不是将每个项目转换为多个元素.这是Element类的示例: class Element { Integer type; String property1; String property2; Integer itemId; String itemName; } 我想在解组后得到它们的清单.对于所有列表元素,Type,property1和property2值应该相同. 解决方法
您需要定义自定义
XmlAdapter.在您的情况下,复杂的部分是您要将一个XML元素映射到多个Java Element对象.这意味着,在Java中,需要配置XmlAdapter以收集Element对象.假设您的示例XML片段是文档的一部分:
<document> <elements> <element> .... </element> <elements> </document> 然后,您需要为List< Element>配置XmlAdapter. Java Document类中的字段: class Document { @XmlJavaTypeAdapter(CustomAdapter.class) List<Element> elements; } 然后,您的CustomAdapter类可以接收Element对象列表(对应于具有嵌套项的实际XML结构),并生成具有所需结构的Element列表. 例如,请检查JAXB XmlAdapter – Customized Marshaling and Unmarshaling (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |