我有一个XML响应,我收到它作为系统链接(Infor XA相关)过程的输出。回复如下所示:
**<?xml version="1.0" encoding="UTF-8"?>
-<System-Link hostVersion="1.0" version="1.0">
-<Response hasWarnings="false" hasErrors="true" systemTimeZoneOffset="-5:00"
systemTimestamp="2017-08-22 03:37:01.115"
workHandle="-1e4c99eb:15dff5e8e61:-796d"
sessionHandle="-1e4c99eb:15dff5e8e61:-7970">
-<UpdateResponse actionSucceeded="false"
requestedDomainClass="com.mapics.epdm.BillOfMaterialComponent"
name="updateObject_BillofMaterial Component_1">
-<Exception name="com.pjx.eScript.ObjectNotFoundException">
-<Text>
<![CDATA[Object does not exist]]>
</Text>
-<Message type="error">
-<Text>
<![CDATA[The named object was not found.]]>
</Text>
</Message>
</Exception>
</UpdateResponse>
<UpdateResponse actionSucceeded="true"
requestedDomainClass="com.mapics.epdm.BillOfMaterialComponent"
name="updateObject_BillofMaterial Component_2"/>
<UpdateResponse actionSucceeded="true"
requestedDomainClass="com.mapics.epdm.BillOfMaterialComponent"
name="updateObject_BillofMaterial Component_3"/>
<UpdateResponse actionSucceeded="true"
requestedDomainClass="com.mapics.epdm.BillOfMaterialComponent"
name="updateObject_BillofMaterial Component_4"/>
<UpdateResponse actionSucceeded="true"
requestedDomainClass="com.mapics.epdm.BillOfMaterialComponent"
name="updateObject_BillofMaterial Component_5"/>
</Response>
</System-Link>**
所以我需要获得所有响应的'actionSucceeded'值(这将在一个事务中)。如果它是假的,那么我想得到。是否有RPG XML函数来实现这一目标?基本上我需要通过检查响应(如上所示)而不是扫描整个请求来知道我的请求是否成功
答案 0 :(得分:2)
使用操作码XML-SAX解析xml文档。有关操作码的更多信息,请参阅IBM Knowledge Center https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzasd/zzxmlsa.htm。
我使用XML-SAX解析我的一个项目中的xml文档(配置文件),请参阅BlueDroplet XML Configuration Provider。
我的观点:当你的主代码库已经是RPG时,不要将Java用于你可以在RPG中轻松做的任何事情。