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对象。
提前致谢!
答案 0 :(得分:0)
尝试使用xpath
将XML放在x.xml文件中 然后创建php文件:
<?php
$xml = simplexml_load_file('x.xml');
$orgList = $xml->xpath("/root/organizations/organization/info");
print $orgList[0]->orgName;
?>
答案 1 :(得分:0)
当你使用$ orgList作为$ orgList循环时,看起来你正在覆盖xml对象。试试这个:
foreach($orgList as $org)
echo $org->orgName;
答案 2 :(得分:0)
尝试以下方法:
$xml = simplexml_load_string($xml);
$org = $xml->organizations->children();
foreach($org as $k => $v)
{
echo $v->info->orgName;
}