0

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 对象。

提前致谢!

4

3 回答 3

0

Try using xpath

Put the XML in x.xml file then create php file:

<?php
    $xml = simplexml_load_file('x.xml');
    $orgList = $xml->xpath("/root/organizations/organization/info");
    print $orgList[0]->orgName; 
?>
于 2012-04-11T15:08:48.933 回答
0

当您使用 $orgList 作为 $orgList 循环时,您似乎正在覆盖 xml 对象。试试这个:

foreach($orgList as $org)
   echo $org->orgName;
于 2012-04-11T15:17:47.877 回答
0

尝试以下操作:

$xml = simplexml_load_string($xml);

$org = $xml->organizations->children();

foreach($org as $k => $v)
{
    echo $v->info->orgName;
}
于 2012-04-11T15:18:45.427 回答