Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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文件只会得到1个结果_Php_Xml - Fatal编程技术网

在php中读取XML文件只会得到1个结果

在php中读取XML文件只会得到1个结果,php,xml,Php,Xml,我不是很擅长php,但已经走到了这一步,一些谷歌和帮助,但被卡住了。 我使用它来加载xml url $xmls=simplexml_load_file("xmlurl",'SimpleXMLElement', LIBXML_NOCDATA); 然后输出这个 Array ( [0] => SimpleXMLElement Object ( [state] => public [achievements] => SimpleXMLEleme

我不是很擅长php,但已经走到了这一步,一些谷歌和帮助,但被卡住了。 我使用它来加载xml url

$xmls=simplexml_load_file("xmlurl",'SimpleXMLElement', LIBXML_NOCDATA);
然后输出这个

Array
(
[0] => SimpleXMLElement Object
    (
        [state] => public
        [achievements] => SimpleXMLElement Object
            (
                [achievement] => Array
                    (
                        [0] => SimpleXMLElement Object
                            (
                                [@attributes] => Array
                                    (
                                        [closed] => 1
                                    )
                                [name] => test1
                                [unlockTimestamp] => 1399400601
                            )

                        [1] => SimpleXMLElement Object
                            (
                                [@attributes] => Array
                                    (
                                        [closed] => 1
                                    )
                                [name] => test2
                                [unlockTimestamp] => 1399442265
                             )
当我回显它显示的代码时。我还想把解锁时间戳放在那里

<?php 
$i = 0;
foreach($xmls as $node) {
$aname = $xmls[$i]->achievements->achievement[$i]->name ;
$i++;
echo "<pre>";
    print_r($aname);
    echo "</pre>"; 
}
?>
它不显示同一对象中的其余部分

我忘了什么吗

编辑:

我应该注意到,它在一个数组中加载多个xml,它们都是相同的结构。所以我使用了$xmls的计数

foreach($xmls as $node) {
   foreach($node->achievements as $achievement) {
      echo '<pre>', $achievement->name, '</pre>';
   }
}

当我这样做时,它也只显示1个条目,但它确实显示名称31

循环中的第一行不正确。应该是:

$top[0]->achievements[0]->name
$top[1]->achievements[1]->name
$top[2]->achievements[2]->name
$top[3]->achievements[3]->name
etc..

对两个数组键使用相同的变量,而不管任何节点中实际有多少(或很少)成就。

当我尝试只获取SimpleXMLElement对象()
foreach($xmls as $node) {
   foreach($node->achievements as $achievement) {
      echo '<pre>', $achievement->name, '</pre>';
   }
}
$top[0]->achievements[0]->name
$top[1]->achievements[1]->name
$top[2]->achievements[2]->name
$top[3]->achievements[3]->name
etc..