xml如下所示:
<root>
<organizations>
<organization>
<info>
<orgID>1234</orgID>
<orgName>XYZ Company</orgName>
<address>
<address1>1 Main Street</address1>
<city>Somewhere</city>
<state>MI</state>
<zip>12334</zip>
</address>
</info>
</organization>
</organizations>
</root>
代码如下:
$ind = strpos($xmlResponse, "<");
$xml = simplexml_load_string(substr($xmlResponse, $ind));
//echo $xml;
$orgList = $xml->organizations->children();
foreach($orgList as $orgList)
{
echo $orgList->orgName;
}
我收到以下错误:
Warning: main() [function.main]: Node no longer exists in...
违规行是 foreach($orgList as $orgList)
谁能告诉我我做错了什么?我尝试通过 50 种不同的方式访问 xml,但要么得到该错误,要么得到一个空的 xml 对象。
提前感谢!
当您
循环使用 $orgList 作为$orgList时,您似乎正在覆盖 xml 对象。试试这个:
foreach($orgList as $org)
echo $org->orgName;
尝试以下操作:
$xml = simplexml_load_string($xml);
$org = $xml->organizations->children();
foreach($org as $k => $v)
{
echo $v->info->orgName;
}
尝试使用 xpath
将 XML 放在 x.xml 文件中然后创建 PHP 文件:
<?php
$xml = simplexml_load_file('x.xml');
$orgList = $xml->xpath("/root/organizations/organization/info");
print $orgList[0]->orgName;
?>