我在抓取并迭代一些有点埋藏的XML数据时遇到了麻烦。我可以将对象转到print_r
但不只是单个属性值。
这是简化的XML。巢是准确的。
SimpleXMLElement Object (
[@attributes] => Array (
[amenity] => Array (
[0] => SimpleXMLElement Object (
[@attributes] => Array (
[distance] => Within Facility
[name] => Biking
)
)
[1] => SimpleXMLElement Object (
[@attributes] => Array (
[distance] => Within Facility
[name] => Bird Watching
)
)
...
)
)
)
我想抓住/回应每个设施的名称。
$amenitiesSet = $xml->amenity;
foreach ($amenitiesSet as $am) {
print_r($am[0]);
}
抓住每个物体。每一次深入的尝试都是失败的。我知道这是我想念的简单事。我不确定何时使用[i]
,['string']
,->
等。我不熟悉使用XML数据集。
像$am[0]->name
这样的东西?
答案 0 :(得分:0)
好的,所以我终于想出了一个解决方案。这样做的技巧是循环对象数组中的对象,然后将对象属性更改为字符串。然后我可以建立列表。这是最终的循环代码。
foreach($xml->amenity as $AMN){
$amNameItem = (string)$AMN['name'];
$amList .= $amNameItem.', ';
}
不知道这是否是最佳解决方案,但至少我可以从xml对象数组中的对象数组中获取对象属性列表。