zoukankan      html  css  js  c++  java
  • php 解析xml文件 简单

    	/******************************************
    	* 解析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;
    	}	 
    

      

  • 相关阅读:
    C#面向对象--类
    Unity DOTS--面向数据编程前的准备
    C#面向对象--命名空间
    C#面向对象--多态
    C#面向对象--继承
    C#中堆和栈的区别
    sql执行顺序
    cookie session
    栈和队列
    c# 单例模式
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2541794.html
Copyright © 2011-2022 走看看