sam怎样解析xml 有详细注释
<?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)); //第六步:错误信息的处理
}