sam怎样解析xml 有详细注释

来源:互联网 发布:多态zpn官网mac 编辑:程序博客网 时间:2024/04/30 16:04

<?php
//创建xml解析器,参数是编码
$parser=xml_parser_create('utf-8');                                      //第一步:创建xml解析器,参数是编码
//规定解析器如何处理我们遇到的标签和数据
/*参数:
参数1,创建的解析器名称
参数2,遇到开始标签的处理函数
参数3,遇到结束标签的处理函数
*/
xml_set_element_handler($parser,'start_element','end_element');         //第二步:规定解析器如何处理我们遇到的标签和数据
/*
   遇到开始标签怎样处理
   参数1,解析器
   参数2,开始标签的名字
   参数3,属性名
*/
function start_element($parser,$name,$attr){                    
 echo "开始标签".$name.'<br />';
 }
 /*
   遇到结束标签怎样处理
   参数1,解析器
   参数2,开始标签的名字
*/
function end_element($parser,$name){
 echo "结束标签".$name.'<br />'; 
 }
/*
 遇到数据后怎样处理
*/
xml_set_character_data_handler($parser,'data_process');                  //第三步:遇到数据后怎样处理
/*遇到数据之后的处理
 参数1,处理器
 参数2,遇到的数据
*/
function data_process($parser,$data){
 echo "数据是:".$data."<br />";
 }

//开始解析  注意:这里解析的是xml文件的内容,不是文件名
//现货的远程文件内容
/*
 参数1,解析器名
 参数2,处理的xml的内容
 参数3,标签数据是否已经处理完毕,如不写解析器会一直等待
*/
$xml_data = file_get_contents('../config.xml');                          //第四步:xml文件的读取
$res=xml_parse($parser,$xml_data,true);                                  //第五步:按照以上规则,开始解析xml文件
//如果有错误,怎样处理
if($res){echo "解析成功";}else                                            
{//有错误,获得错误代码,输出错误信息
  xml_error_string(xml_get_error_code($parser));                         //第六步:错误信息的处理
}

原创粉丝点击