我正在使用simplexml_load_string解析xml,如下所示:
$xml = simplexml_load_string($response);
echo '{'.
'"Date":"'.$xml->Date[0].'",'.
'"Description":"'.$xml->ShipTos->ShipTo->ShippingGroups->ShippingGroup->OrderItems->OrderItem->Description[0].'",'.
'"Track":"'.$xml->Shipments->Shipment->Track[0].'"'.
'}';
这可以正常工作,但是如果一个节点多次出现在xml中,它只抓取一次。有人可以帮我理解如何专门为Description节点编写foreach循环吗?
答案 0 :(得分:5)
您只是指每个SimpleXMLObject
的一个实例。
例如,$xml->Date[0]
指的是仅首次出现Date对象。要打印所需的所有Date对象
循环通过它们
foreach( $xml->Date as $date ){
print (string)$date;
}
或者,您可以使用children
功能:
foreach( $xml->children('Date') as $date ){
print (string)$date;
}
答案 1 :(得分:1)
$datebuffer;
$count = 0;
foreach($xml->Date as $date){
$count++;
datebuffer .= "Date:".$count ." ".$date;
}
依旧......