如果USPS地址验证的标记取决于成功与否,我该如何解析返回的xml?例如,如果返回有效,则得到
A)
,如果无效,则得到B)
。在A)
中,节点<Error>
不存在,如果存在错误,则希望输出该错误。在PHP
中有isset()
,但我从未听说过用于解析XML的类似函数。<?xml version="1.0"?>
<AddressValidateResponse>
<Address ID="0">
<Address2>123 MAIN ST</Address2>
<City>SPRINGFIELD</City>
<State>NY</State>
<Zip5>11111</Zip5>
<Zip4>1111</Zip4>
</Address>
</AddressValidateResponse>
B)
<?xml version="1.0"?>
<AddressValidateResponse>
<Address ID="0">
<Error>
<Number>-45DF6S45F</Number>
<Source>API_AddressCleancAddressClean.CleanAddress2;SOLServer.CallAddressDll</Source>
<Description>Address Not Found. </Description>
<HelpFile></HelpFile>
<HelpContext>1000440</HelpContext>
</Error>
</Address>
</AddressValidateResponse>
目前我正在使用jquery解析XML,如下所示:
$.ajax({
type: "POST",
url: "usps_xml_verify.php",
data: {<PASS IN VARIABLES>},
dataType: "xml",
success: function(xml) {
$(xml).find('Address').each(function(){
var Address2 = $(this).find('Address2').text();
var Zip5 = $(this).find('Zip5').text();
//etc...
});
}
});