首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个XML文档合并到一个java对象中,或者将XML文件合并到一个java对象中

将多个XML文档合并到一个java对象中,或者将XML文件合并到一个java对象中
EN

Stack Overflow用户
提问于 2021-09-18 20:02:55
回答 2查看 31关注 0票数 0

我有许多不同的xml文档,它们基本上没有相同的结构,我需要对它们进行解析或将它们编组到一个java对象中。这些xml文档来自不同的api。

java对象如下所示: xml文档位于java对象的下面

代码语言:javascript
复制
@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文档如下所示

代码语言:javascript
复制
<?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文档将具有不同的@XmlRootElement

1- (有20个不同的java对象来满足20个不同的xml文档是没有意义的,因为每个java对象只能有一个@XmlRootElement(name = "ABF"),这会导致问题)

2- @XmlElement只能与相应的XML文档相同,因此在一个java字段上使用不同的@XmlElement也没有意义。

我的问题是,有没有人知道应该使用什么技术将多个xml文档值编组到一组java对象中。

我在一个java循环中遇到了xml解析和子节点。显然,我尝试过使用jaxb编组到java对象中,但这不起作用。有没有人能给我指引正确的方向,这样我才能读懂更多。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-09-18 22:12:56

我建议对传入的文档进行XSLT转换,以便在JAXB处理之前将它们转换为通用格式。

在处理可变的XML文档结构方面,XSLT比JAXB灵活得多。

票数 1
EN

Stack Overflow用户

发布于 2021-09-22 18:39:59

DSM库正是解决了这一问题。你应该看看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69238032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档