Java如何摆脱冗余代码

时间:2017-05-12 06:36:38

标签: java xml

在Java中,我解析XML文档。这个XML是一个采购订单,我从这个XML中在ERP系统中创建了一个采购订单文档。

我使用domparser来解析XML。 所以最终我有这样的代码:

--this is an excerpt --
    //ShipTo
    Element shipToElement = CXMLHandlerObj.getChildElement(elementOrderRequestHeader, "ShipTo");

    //Address
    Element shipToAddressElement = CXMLHandlerObj.getChildElement(shipToElement, "Address");
        /*get attributes of Address*/
        notesHandlerObj.docOrder.replaceItemValue("ShipToParty_addressID", shipToAddressElement.getAttribute("addressID"));
        notesHandlerObj.docOrder.replaceItemValue("ShipToParty_addressIDDomain", shipToAddressElement.getAttribute("addressIDDomain"));
        notesHandlerObj.docOrder.replaceItemValue("ShipToParty_isoCountryCode", shipToAddressElement.getAttribute("isoCountryCode"));

但是XML在顶部还包含一个OrderRequestHeader,其中包含一个type属性:

    <OrderRequestHeader orderDate="2017-04-04T12:00:00+00:00" orderID="4550144777" orderType="regular" orderVersion="1" type="new">

在此元素下方找到订单的所有详细信息。

“type”属性可以包含以下值:New或Update。 如果首次发送PO XML,则类型将为“新”,如果发送相同的PO,则类型将为“更新”,但随后包含更新。 请注意,XML结构相同,但只有类型不同。 当类型为“New”时,我将解析XML并创建PO文档。但是如果类型是“更新”,那么我想检查每个元素并更新文档并相应地邮寄更改。

现在的问题是,为了解析XML,我需要创建一个新的PO或更新现有的PO。我可以通过以下方式做到这一点:

1。创建两种方法:

 1. create new PO
 2. update PO

在create方法中,我可以解析xml并将元素中的值添加到文档中。

在更新方法中,我可以再次解析所有元素,但也检查哪些数据已被更改。

2。我可以在每个元素之前加上if和else语句

上面的方法有点减少有没有更简单的方法呢?

0 个答案:

没有答案