【发布时间】:2021-11-13 04:39:31
【问题描述】:
我有许多不同的 xml 文档,它们基本上没有相同的结构,我需要解析它们或将它们编组为 java 对象。这些xml文档来自不同的api。
java对象如下xml文件在java对象下面
@XmlRootElement(name = "ABF")
public class QuoteOffer {
@XmlElement(name = "QUOTEID")
private String quoteId;
@XmlElement(name = "CHARGE")
private Float charge;
@XmlElement(name = "SHIPDATE")
private Date shipDate;
@XmlElement(name = "EFFECTIVEDATE")
private Date effectiveDate;
@XmlElement(name = "EXPIRATIONDATE")
private Date expirationDate;
@XmlElement(name = "ORIGTERMINFO")
private List<OrigTermInfo> origTermInfo;
@XmlElement(name = "DESTTERMINFO")
private List<DestTermInfo> destTermInfo;
xml文档如下
<?xml version="1.0"?>
<ABF>
<QUOTEID>LS1N9F2601</QUOTEID>
<CHARGE>166.08</CHARGE>
<DISCOUNTPERCENTAGE></DISCOUNTPERCENTAGE>
<ADVERTISEDTRANSIT>1 Day</ADVERTISEDTRANSIT>
<ADVERTISEDDUEDATE>2021-05-06</ADVERTISEDDUEDATE>
<SHIPDATE>2021-05-05</SHIPDATE>
<EFFECTIVEDATE>2021-05-05</EFFECTIVEDATE>
<EXPIRATIONDATE>2021-05-11</EXPIRATIONDATE>
<CODFEE></CODFEE>
<TPDELIVERYCHARGE></TPDELIVERYCHARGE>
<TPCHARGEPERBOX></TPCHARGEPERBOX>
<ORIGTERMINFO>
<ORIGTERMADDRESS>4242 IRVING BLVD</ORIGTERMADDRESS>
<ORIGTERMCITY>DALLAS</ORIGTERMCITY>
<ORIGTERMSTATE>TX</ORIGTERMSTATE>
<ORIGTERMZIP>75247</ORIGTERMZIP>
<ORIGTERMPHONE>2146880448</ORIGTERMPHONE>
<TYPE>DIRECT</TYPE>
</ORIGTERMINFO>
<DESTTERMINFO>
<DESTTERMADDRESS>4410 S. JACKSON</DESTTERMADDRESS>
<DESTTERMCITY>TULSA</DESTTERMCITY>
<DESTTERMSTATE>OK</DESTTERMSTATE>
<DESTTERMZIP>74107</DESTTERMZIP>
<DESTTERMPHONE>9184460122</DESTTERMPHONE>
<TYPE>DIRECT</TYPE>
xml 和 java 对象的代码被截断以便于阅读。 java 对象将被修复。如果某些字段为空,那就这样吧。 我面临的问题是xml文档会有不同的@XmlRootElements
1-(拥有 20 个不同的 java 对象来满足 20 个不同的 xml 文档是没有意义的,因为每个 java 对象我只能有一个 @XmlRootElement(name = "ABF") 这会导致问题)
2- @XmlElement 只能与相应的 XML 文档相同,因此在一个 java 字段上使用不同的 @XmlElement 也没有意义。
我的问题是有谁知道使用什么技术将多个 xml 文档值编组到 java 对象列表。
我在 java 循环中遇到了 xml 解析和子节点。显然我尝试使用 jaxb 编组到 java 对象,但这不起作用。有人可以指导我正确的方向,以便我可以阅读更多内容。
谢谢
【问题讨论】: