基于事件的XML解析【使用解析器】中国天气网

参考 :php手册 (XML 元素结构例程)

<?php
header("content-type:text/html;charset=utf-8");
//接口URL、
$file='http://flash.weather.com.cn/wmaps/xml/china.xml';
 $result = array();//定义全局变量
function startTag($parser,$name,$attrs) 
{
    global $result;
	$array=array(); 
	foreach ($attrs as $k=> $v){
		$array[strtolower($k)]=$v;
	}
	$result[][strtolower($name)]=$array; 
} 
function cdata($parser,$cdata)
 {
     global $result;
    if(trim($cdata))
     {     
        $result[count($result)-1]['cdata']=$cdata;    
    }
 }
function endTag($parser,$name) 
{
  
 }
 //创建xml解析器
$xml_parser = xml_parser_create();
 //定义XML的处理函数(处理器)
xml_set_element_handler($xml_parser,"startTag","endTag");
 
//打开文件资源
if (!($fp = fopen($file,"r"))) {
   die("could not open XML input");
}
 
//循环处理数据
while ($data = fread($fp,4096)) {
   if (!xml_parse($xml_parser,$data,feof($fp))) {
 
	   die(sprintf("XML error: %s at line %d",xml_error_string(xml_get_error_code($xml_parser)),xml_get_current_line_number($xml_parser)));
   }
}
 //释放解析器
xml_parser_free($xml_parser);
print("<pre>\n");
var_dump($result);
 ?> 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇