繁体   English   中英

使用SimpleXML在PHP中迭代XML数据

[英]Iterating over XML data in PHP using SimpleXML

我有以下简单的XML数据:

  [Listeners] => 37
            [listener] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [IP] => 0.0.0.1
                            [UserAgent] => curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
                            [Connected] => 1236
                            [ID] => 120
                        )

                    [1] => SimpleXMLElement Object
                        (
                            [IP] => 0.0.0.2
                            [UserAgent] => curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
                            [Connected] => 1235
                            [ID] => 121
                        )

我想显示[IP]。

所以我有这个PHP脚本:

<?php

$url = "http://admin:password@media.xseu.net/admin/listclients?mount=/FavoriteFM";
$xml = simplexml_load_file($url);
echo "<pre>";
print_r($xml);
 $IP = $xml->listener->IP;
 echo $IP[0];

?>

但它不起作用。 如何以正确的方式显示IP?

$url = "http://admin:password@media.xseu.net/admin/listclients?mount=/FavoriteFM";
$xml = simplexml_load_file($url);
$IP = $xml->source->listener;
    foreach($IP as $row){
      echo $row->IP;
    }

您将获得阵列的所有IP。

只需改变这一行:

(你只是忘了第一级资源)

$IP = $xml->listener->IP;

对此:

$IP = $xml->source->listener->IP;
        //^^^^^^^^ See here

这应该适合你:

foreach($xml->source->listener as $ip) 
    echo $ip->IP . "<br />"; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM