基于事件的xml文件解析(中国天气网xml解析)

本文介绍如何使用PHP解析XML文件,通过自定义处理器来提取特定的数据元素,并以预览方式展示解析结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
header("content-type:text/html;charset=UTF-8");
//接口的URL
$file_url = "http://flash.weather.com.cn/wmaps/xml/china.xml";
 
$tree = array();
 
//开始标签处理器
function startElement($parser, $name, $attrs) {
   global $tree;
 
   $element = array();
   foreach ($attrs as $key => $value) {
       $element[strtolower($key)]=$value;
   }
   $tree[][strtolower($name)] = $element;
 
}
 
//结束标签处理器
function endElement($parser, $name) {
 
}
 
//创建XML解析器
$xml_parser = xml_parser_create();
 
//定义XML的处理函数(处理器)
xml_set_element_handler($xml_parser, "startElement", "endElement");
 
//打开文件资源
if (!($fp = fopen($file_url, "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);
 
echo "<pre>";
print_r($tree);
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值