您的位置:首页 > 其它

基于事件的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);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: