在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语句
上面的方法有点减少有没有更简单的方法呢?