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

来源:互联网 发布:软件源代码下载 编辑:程序博客网 时间:2024/06/02 13:12

参考 :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 $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); ?> 


0 0