本文主要是介绍SAX方式获取XML内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
<?phpheader("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/>';
}
/*
参数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)));
}
这篇关于SAX方式获取XML内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!