【发布时间】:2016-12-04 17:11:49
【问题描述】:
我有以下 SOAP XML 负载:
<Errors>
<Error Code="386" NodeList="FAX=+52 808 669.6271" RecordID="ROOT"
ShortText="Invalidfax number" Status="Not Processed" />
<Error Code="1000386" NodeList="Contact Title=empty" RecordID="ROOT" ShortText="Contact Title is required"
Status="Not Processed" />
<Error Code="311" NodeList="Contact First Name=empty" RecordID="ROOT" ShortText="Required data missing: first name"
Status="Not Processed" />
<Error Code="310" NodeList="Contact Last Name=empty" RecordID="ROOT" ShortText="Required data missing: last name"
Status="Not Processed" />
<Error Code="316" NodeList="Contact Phone=empty" RecordID="ROOT" ShortText="Required data missing: phone number"
Status="Not Processed" />
</Errors>
要接收的错误记录的数量是随机的,从 1 到“N”。
当它只有 #1 错误记录时,我可以解析以下有效负载,执行:
vxmlns := 'xmlns="http://www.opentravel.org/OTA/2003/05"';
vCode := xmltype.getClobVal(vXml.extract('//Error/@Code', vxmlns));
vNodeList := xmltype.getClobVal(vXml.extract('//Error/@NodeList', vxmlns));
vShortText := xmltype.getClobVal(vXml.extract('//Error/@ShortText', vxmlns));
vStatus := xmltype.getClobVal(vXml.extract('//Error/@Status', vxmlns));
vType := xmltype.getClobVal(vXml.extract('//Error/@RecordID', vxmlns));
如何处理此有效负载以便单独处理每个错误记录?
理想的输出可能是:
Array[0]= "386 | FAX=+52 808 669.6271 | ROOT | Invalid fax number | Not Processed"
Array[1]= "1000386 |Contact Title=empty |ROOT| Contact Title is required |Not Processed"
.....
.....
Array[4]= "316 | Contact Phone=empty | ROOT | Required data missing: phone number | Not Processed"
谢谢
【问题讨论】: