基于事件的XML解析【使用解析器】(中国天气网)
发布时间:2020-12-16 06:19:21 所属栏目:百科 来源:网络整理
导读:参考 :php手册 (XML 元素结构例程) ?phpheader("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 $re
参考 :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); ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |