【问题标题】:How to loop through a SimpleXMLElement object rest client in Php?如何在 PHP 中循环一个 SimpleXMLElement 对象休息客户端?
【发布时间】:2014-09-01 06:41:16
【问题描述】:

如何循环一个 SimpleXMLElement 对象?这就是我所拥有的:我尝试了多种方式进行迭代,但没有成功:

 Array
 (
    [status] => 1
    [data_nilai_siswa] => SimpleXMLElement Object
    (
        [item] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                        [id_siswa] => 1
                        [nama_siswa] => 1
                        [n_bahasa] => 1.00
                        [n_matematika] => 1.00
                        [n_binggris] => 1.00
                    )

                [1] => SimpleXMLElement Object
                    (
                        [id_siswa] => 2
                        [nama_siswa] => 2
                        [n_bahasa] => 2.00
                        [n_matematika] => 2.00
                        [n_binggris] => 2.00
                    )
            )
       )
 )

我使用库休息客户端philsturgeon/codeigniter-restclient 和脚本休息客户端:

$xmlResponse = $this->rest->get('http://127.0.0.1/EJ/testclient2/getdata/nilai');
$projects = array();

foreach($xmlResponse->project as $project) {
 $projects[$project->id_siswa] = $project->nama_siswa;
 echo 'Project ' . $project->nama_siswa . ' has ID ' . $project->id_siswa . PHP_EOL;
}

我收到错误消息:尝试获取非对象的属性?如何解决?

【问题讨论】:

    标签: php arrays xml codeigniter simplexml


    【解决方案1】:

    将其直接指向item 属性。

    foreach($xmlResponse->data_nilai_siswa->item as $project) {
        $projects[$project->id_siswa] = $project->nama_siswa;
        echo 'Project ' . $project->nama_siswa . ' has ID ' . $project->id_siswa . '<br/>'; 
    }
    

    【讨论】:

    • 谢谢..这个工作但我发现消息:非法偏移类型。
    • $projects[$project->->item->id_siswa] = $project->->item->nama_siswa;我加了这个。然后工作。谢谢你的帮助..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多