使用 SimpleXML 时为空的 xml 对象 - 节点不再存在


Empty xml object when using SimpleXML - Node no longer exists

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; 
?>