simplexml,返回具有相同标记的多个项目

时间:2012-08-15 20:07:12

标签: php xml simplexml

我将以下XML文件加载到php simplexml中。

<adf>
<prospect>
<customer>
<name part="first">Bob</name>
<name part="last">Smith</name>
</customer>
</prospect>
</adf>
使用

$customers = new SimpleXMLElement($xmlstring); 

这将返回“Bob”,但如何返回姓氏?

echo $customers->prospect[0]->customer->contact->name;

1 个答案:

答案 0 :(得分:12)

您可以使用数组样式语法按编号访问不同的<name>元素。

$names = $customers->prospect[0]->customer->name;

echo $names[0]; // Bob
echo $names[1]; // Smith

事实上,你已经<prospect>元素做了这件事!

另请参阅手册中的Basic SimpleXML Usage


如果您想根据某些条件选择元素,则XPath是要使用的工具。

$customer   = $customers->prospect[0]->customer;
$last_names = $customer->xpath('name[@part="last"]'); // always returns an array
echo $last_names[0]; // Smith