PHP命名空间XML数组问题

时间:2011-08-15 03:32:34

标签: php xml arrays

你好我正在使用NOAA浮标RSS feed来创建和插入Mysql中的变量。标签上有一个标签:

<georss:point>45.565 -34.123</georss:point>

我已经证明了这一点:

$xmlString = file_get_contents($feed_url); 
$xmlString = str_replace('georss:point','point',$xmlString);  
$xml = new SimpleXMLElement($xmlString); 
$items = $xml->xpath('channel/item'); 
$closeItems = array(); foreach($items as $item) 
{     
$latlng = explode(' ',trim($item->point));
$lat = $latlng[0];
$lng = $latlng[1];  
} 

然而,我遇到的问题是,$ lat和$ lng的变量对于所有Feed文章都是相同的。每篇文章都有一个唯一的$ lat和$ lng,所以我知道我在这里做错了。再次感谢,

1 个答案:

答案 0 :(得分:1)

问题在于:

foreach($items as $item) 
{     
    $latlng = explode(' ',trim($item->point));
    $lat = $latlng[0];
    $lng = $latlng[1];  
}

您为每条记录分配变量,但从不在循环内使用它们。假设循环后有更多代码,该代码将始终只接收为$lat$lng分配的最后一个值。

要解决此问题,请将特定于记录的代码放在foreach()循环中:

foreach($items as $item) 
{     
    $latlng = explode(' ',trim($item->point));
    $lat = $latlng[0];
    $lng = $latlng[1];
    // Do something with $lat and $lng here  
}