首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

SAX形式解析XML

2013-03-10 
SAX方式解析XML?php header(Content-Type:text/htmlcharsetutf-8) //创建XML解析器 $parser xml_p

SAX方式解析XML

<?php
 header("Content-Type:text/html;charset=utf-8");
 //创建XML解析器
 $parser = xml_parser_create('utf-8');
 //规定如何让处理我们遇到的标签和数据
 /*
  参数1,当前解析器
  参数2,开始标签处理函数
  参数3,结束标签处理函数

 */
 xml_set_element_handler($parser,'start_element','end_element');
 /*
  参数1,解析器
  参数2,开始标签名
  参数3,属性名

 */

 function start_element($parser,$name,$attr){
   echo '开始标签'.$name.'<br/>';
   echo '属性:'.$attr[ID].'<br>';
 }
 /*
  参数1,解析器
  参数2,结束标签名

 */

 function end_element($parser,$name){
   echo '结束标签'.$name.'<br/>';
 }

 /*
  处理数据
  参数1,解析器资源
  参数2,数据处理器名称

 */

 xml_set_character_data_handler($parser,'data_process');
 /*
  数据处理器
  参数1,当前解析器
  参数2,数据内容

 */
 function data_process($parser,$data){
   echo $data."<br>";
   
 }
 /*
  开始解析之前,需要读入xml文件的内容,解析器处理的是文件的内容不是文件,所以需要先通过文件处理函数获得文件的内容

 */
 $xml_data = file_get_contents('bookshelf.xml');
 /*
  开始解析:
  参数1,解析器
  参数2,解析的数据
  参数3,告诉解析器是否为最后一个数据()否则解析器会继续等待
 */
 xml_parse($parser,$xml_data,true);

 //处理错误
 if($res){
  echo "处理成功";
 }else{
  //失败,处理错误
  var_dump(xml_get_error_code($parser));
  var_dump(xml_get_current_line_number($parser));
  var_dump(xml_get_current_column_number($parser));
  var_dump(xml_error_string(xml_get_error_code($parser)));

 }

热点排行