Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP选择嵌套对象数组中对象中的XML属性_Php_Arrays_Xml_Loops_Object - Fatal编程技术网

PHP选择嵌套对象数组中对象中的XML属性

PHP选择嵌套对象数组中对象中的XML属性,php,arrays,xml,loops,object,Php,Arrays,Xml,Loops,Object,我在抓取和迭代一些被隐藏的XML数据时遇到了问题。我可以让对象打印,但不仅仅是单个属性值 下面是简化的XML。巢穴是准确的 SimpleXMLElement Object ( [@attributes] => Array ( [amenity] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array (

我在抓取和迭代一些被隐藏的XML数据时遇到了问题。我可以让对象打印,但不仅仅是单个属性值

下面是简化的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

好吧,我终于想出了一个解决办法。这样做的诀窍是循环对象数组中的对象,然后将对象属性更改为字符串。然后我可以建立一个列表。这是最后一个循环代码

foreach($xml->amenity as $AMN){
            $amNameItem = (string)$AMN['name'];
            $amList .= $amNameItem.', ';
        }
不知道这是否是最好的解决方案,但至少我可以从xml对象数组中的对象数组中获取对象属性列表