我正试图获得每个MerchantFulfillmentID
的SKU
's,其中具有MFN
的值。
这是我的xml:
$xml = '<?xml version="1.0" encoding="UTF-8"?>
<Message>
<SettlementReport>
<Refund>
<Fulfillment>
<MerchantFulfillmentID>MFN</MerchantFulfillmentID>
<AdjustedItem>
<SKU>1MFNSKU1</SKU>
</AdjustedItem>
</Fulfillment>
</Refund>
<Refund>
<Fulfillment>
<MerchantFulfillmentID>AFN</MerchantFulfillmentID>
<AdjustedItem>
<SKU>1AFNSKU1</SKU>
</AdjustedItem>
</Fulfillment>
</Refund>
<Refund>
<Fulfillment>
<MerchantFulfillmentID>MFN</MerchantFulfillmentID>
<AdjustedItem>
<SKU>2MFNSKU2</SKU>
</AdjustedItem>
</Fulfillment>
</Refund>
<Refund>
<Fulfillment>
<MerchantFulfillmentID>AFN</MerchantFulfillmentID>
<AdjustedItem>
<SKU>2AFNSKU2</SKU>
</AdjustedItem>
</Fulfillment>
</Refund>
</SettlementReport>
</Message>';
和我的PHP
$xmlload = simplexml_load_string($xml);
foreach ($xmlload->Message->SettlementReport->Refund->Fulfillment as $ful) {
if ($ful->MerchantFulfillmentID == 'MFN') {
echo $ful->MerchantFulfillmentID;
echo '<br />';
echo $ful->AdjustedItem->SKU;
}
}
我的结果是
最惠国1 mfnsku1
只获取它找到的第一个迭代的结果。
MFN
的每个实例都将回显SKU
?我个人会从你的XML创建一个数组,如下所示。
$xmlToString = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);$xmlToArray = json_decode(json_encode((array)$xmlToString), TRUE);print_r ($ xmlToArray);之前这将打印出;
<>之前数组([settmentreport] => Array([退款]=>数组([0] =>数组([Fulfillment] => Array([merchantfulfillmentd] => MFN[AdjustedItem] => Array([sku] => 1mfnsku1)))[1] =>数组([Fulfillment] => Array([merchantfulfillmentd] => AFN[AdjustedItem] => Array([sku] => 1afnsku1)))[2] =>数组([Fulfillment] => Array([merchantfulfillmentd] => MFN[AdjustedItem] => Array([sku] => 2mfnsku2)))[3] =>阵列([Fulfillment] => Array([merchantfulfillmentd] => AFN[AdjustedItem] => Array([sku] => 2afnsku))))))之前然后对"$xmlToArray"执行foreach操作。
<>之前foreach($xmlToArray['SettlementReport']['Refund']作为$ full){if($ full ['Fulfillment'][' merchantfulfillment '] == 'MFN'){echo $富尔语("成就感")("MerchantFulfillmentID");echo $富尔语("成就感")("AdjustedItem")("SKU");}}之前相关文章:将SimpleXML对象转换为数组