我访问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Ór</actor>
</node3>
</node2>
</node1>
</main>
当我在php代码上运行时,用于读取具有xml格式的api内容,如上所示。 我想使用foreach循环读取名称和actor节点。但我无法访问node3下的第一个名称和actor节点,而不能访问第二个.... 请更正foreach循环或代码中的任何缺陷。请突出显示并帮助我纠正错误....
答案 0 :(得分:0)
也许就像这样设置
foreach ($xml->node1->node2 as $info) {
echo $info->node3->name, ' played by ', $info->node3->actor, PHP_EOL;
}