基于事件的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);
 ?> 
时间: 2024-12-29 10:32:52

基于事件的XML解析【使用解析器】(中国天气网)的相关文章

Android解析中国天气网的Json数据

在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了.但用来学习还是能够的.为了方便我直接到数据通过txt保存到本地,它的数据能够通过这个页面获取:http://m.weather.com.cn/data/101280601.html 文件夹结构 事实上解析也非常easy.关键代码 private void json3() { InputStream

中国天气网 JSON接口的城市编码解析及结果

最近在弄一个Android应用,其中一个功能是天气情况展示,准备使用google的天气API服务(http://www.google.com/ig/api?hl=zh-cn&weather=,,,, ),不想这个接口已经在几个月前关闭服务了.于是各种资料,最终决定使用 中国天气网 的服务. 中国天气网提供有两种数据格式的接口: 一. XML接口 http://flash.weather.com.cn/wmaps/xml/china.xml http://flash.weather.com.cn/

【第29篇】通过HttpClient+Gson解析中国天气网的天气预报信息

http://jilongliang.iteye.com/blog/1932110 package com.test; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; im

C#实现中国天气网XML接口测试

点击链接查看中国天气网接口说明,最近想研究一下接口测试,源于最近一次和某公司的技术总监(交大校友)谈话,发现接口测试的需求是比较大的,于是想要研究一下. 好不容易在网上找到了一个关于中国天气网的接口说明,就是上面那篇.决定访问下这个接口,对接口返回的内容进行分析,筛选出我想要的信息. 想到当时问及的接口主要是json类型的,但是苦于没有找到json类型的接口(上文中的json接口貌似失效了),就先拿xml类型的接口试验一下,我想原理应该都差不多,只是具体的实现有些不同. 若谁有可用的json接口

中国天气网接口返回json格式分析及接口(XML、图片接口)说明

实时天气: city        "北京"//城市 cityid      "101010100"//城市编码 temp        "17"//当前温度 WD      "东风"//风向 WS      "2级"//风力 SD      "70%"//相对湿度 WSE         "2"//风力 time        "14:20"//

基于Jquery的XML解析器,返回定制的HTML

依据HTML模板返回解析的XML 依赖jQuery 1.4?1. [代码]基于Jquery的xml解析器并返回定制的HTML     /** *  jQuery插件 *  Author: [email protected] *  Date  : 2011-02-16 *  Params: dom:XMLDocument , *          _default:{ *              reg:匹配标签正则, *              lc:标签左结束符, *          

Android解析XML之SAX解析器

SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事件源产生事件后,调用事件处理器相应的处理方法,一个事件就可以得到处理.在事件源调用事件处理器中特定方法的时候,还要传递给事件处理器相应事件的状态信息,这样事件处理器才能够根据提供的事件信息来决定自己的行为. SAX解析器的优点是解析速度快,占用内存少.非常适合在Android移动设备中使用. SAX相关类及API DefaultHandler:是一个事

史上最最靠谱,又双叒叒简单的基于MSXML的XML解析指南-C++

目录 史上最最靠谱,又双叒叒简单的基于MSXML的XML解析指南 流程设计 xml信息有哪几种读取形式(xml文件或wchar) 如何选取节点,and取节点属性有哪些方法? IXMLDOMNode与IXMLDOMElement接口有何联系.区别 节点如果是数组,怎么操作? 如何为属性插入属性 字符串的转换与输出 主要代码 史上最最靠谱,又双叒叒简单的基于MSXML的XML解析指南 最近做C++相关的项目,遇到同时使用COM和MSXML来解析XML文件中信息的问题,这类问题如果做MFC开发也会经常

XML创建与解析常用方法介绍

XML解析方式介绍 1.DOM4J(Document Object Model for Java)      虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支.它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持.XML Schema支持以及用于大文档或流化文档的基于事件的处理.它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能.从2000下半年开始,它就一直处于开发之中. 为支持所有这些功能,DOM4J使用接口和抽象基