繁体   English   中英

foreach循环不适用于php中的simplexmlelement

[英]foreach loop not working for simplexmlelement in php

我正在访问一个api并使用Simplexml元素读取内容。但是当我使用foreach循环访问节点的值时,它仅给我一个值,而不给其他人....下面是我的代码

<?php
include('connection.php');
header("Content-Type: text/xml;");
function httpGet($url)
{
    $ch = curl_init();  

    curl_setopt($ch,CURLOPT_URL,$url);
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//  curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'header1:value1',
    'header2:value2'
    )); 
    $output=curl_exec($ch); 
    curl_close($ch);
    return $output;
}
$data= httpGet("http://apiurl");
$xml = new SimpleXMLElement($data);
foreach ($xml->node1->node2->node3 as $info) {
   echo $info->name, ' played by ', $info->actor, PHP_EOL;
}
?>

我正在阅读的XML格式

    <?xml version='1.0' standalone='yes'?>
    <main>
     <node1>
      <title>PHP: Behind the Parser</title>
      <node2>
       <node3>
        <name>Ms. Coder</name>
        <actor>Onlivia Actora</actor>
       </node3>
</node2>
<node2>
       <node3>
        <name>Mr. Coder</name>
        <actor>El Act&#211;r</actor>
       </node3>
      </node2>
     </node1>
    </main>

当我在上面的php代码上运行以读取具有xml格式的api内容的php代码时,如上所述。 我想使用foreach循环读取名称和actor节点。但是我无法仅访问node3下的名字和actor节点,而不能访问第二个。...请更正foreach循环或代码中的任何缺陷。帮助我纠正这一点。

也许像这样设置

foreach ($xml->node1->node2 as $info) {
   echo $info->node3->name, ' played by ', $info->node3->actor, PHP_EOL;
}

暂无
暂无

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

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