您的位置:首页 > 编程语言 > PHP开发

php 解析xml文件

2012-06-08 15:00 393 查看
/******************************************
* 解析XML格式的字符串
* @param  string $str
* @return 解析正确就返回true,否则返回false
*******************************************/
function xml_parser($str){
$xml_parser = xml_parser_create();
if(!xml_parse($xml_parser,$str,true)){
xml_parser_free($xml_parser);
return false;
}else {
return true;
}
}

/********************************************
*  @取得GPX文件,返回一个数组
*  @$filename: 文件名
*******************************************/
private function readGPX($filename)
{
$xmlDoc = new DOMDocument();
$data=@file_get_contents($filename);
//$isok = strpos($data,"<?xml");
$isok = $this->xml_parser($data);
$result = array();
if($isok == true){
if($xmlDoc->load($filename)){
$XMLTrkseg = $xmlDoc->getElementsByTagName('trkseg')->item(0);
if(count($XMLTrkseg->getElementsByTagName('trkpt')) >= 1){
foreach($XMLTrkseg->getElementsByTagName('trkpt') as $trkpt){
$ele="";
$time = "";
$speed = "";
$lat = "";
$lon = "";
try{
$eles = $trkpt->getElementsByTagName("ele");
$ele = $eles->item(0)->nodeValue;
}catch(Exception $e){ }
try{
$times = $trkpt->getElementsByTagName("time");
$time = $times->item(0)->nodeValue;
if($time  !=""){
$time = str_replace("T"," ",str_replace("Z","",$time));
}
}catch(Exception $e){ }
try{
$speeds = $trkpt->getElementsByTagName("speed");
if(isset($speeds->item(0)->nodeValue))
$speed = $speeds->item(0)->nodeValue;
}catch(Exception $e){ }
try{
$lat =  $trkpt->getAttribute("lat");
}catch(Exception $e){ }
try{
$lon = $trkpt->getAttribute("lon");
}catch(Exception $e){ }
$x = array("ele"=>$ele,"time"=>$time,"speed"=>$speed,"lat"=>$lat,"lon"=>$lon);
$result[] = $x;
}
}
}
}
return $result;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: