基于事件的XML解析【使用解析器】(中国天气网)
2015-05-26 20:20
441 查看
参考 :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); ?>
相关文章推荐
- 基于事件的xml文件解析(中国天气网xml解析)
- Xml解析方式之Pull解析器的使用
- Android中使用Xml内置解析器pull来解析Xml原始资源
- 使用java自带的xml解析器解析xml
- Android笔记--使用Android自带的XML解析器PULL解析器简单的解析xml
- dom4j基于事件流解析大XML的文件
- [置顶] XMLParser一个基于Dom4J的XML解析工具的使用
- jaxp解析器 使用DOM对象来解析XML
- [代码笔记] python 之 xml解析_sax:基于事件驱动的解析方式
- PHP基于事件的XML解析工具类
- PHP Document解析XML(对比基于事件xml解析)
- 使用 StAX 解析 XML,第 2 部分: 拉式解析和事件
- 使用 StAX 解析 XML,第 3 部分: 使用定制事件和编写 XML
- XML解析之二 SAX解析器
- Android使用Pull解析器解析XML文件
- 使用Boost property tree来解析带attribute的xml
- Java学习之路——使用DOM解析XML文档
- 使用REXML解析XML时碰到invalid byte sequence in GBK (ArgumentError)问题
- 使用Dom4j实现对XML文档的解析
- 使用Dom4j实现对XML文档的解析