PHP的三种XML解析器之Expat解析器(一)

来源:互联网 发布:八皇后问题算法流程图 编辑:程序博客网 时间:2024/05/29 02:45

XML文件内容

<?xml version="1.0" encoding="UTF-8" ?><note><to>腾讯</to><from>百度</from><head>BAT</head><body>BAT是中国互联网公司百度公司(Baidu)、阿里巴巴集团(Alibaba)、腾讯公司(Tencent)三大巨头首字母缩写。</body></note>

PHP文件内容

//expat解析器//1.利用xml_parser_create()函数初始化Expat解析器$parser = xml_parser_create();//2.定义遇到事件处理函数 开始标签start()、结束标签stop()、字符数据char()function start($parser, $element_name, $element_attr){if($element_name == 'NOTE'){echo $element_name . '<br />';}else{echo $element_name . ': ';}}function stop($parser, $element_name){echo '<br />';}function char($parser, $data){echo $data;}//3.绑定开始标签和结束标签的事件处理函数xml_set_element_handler()xml_set_element_handler($parser,'start','stop');//4.绑定字符数据的事件处理函数xml_set_character_data_handler()xml_set_character_data_handler($parser,'char');//5.利用xml_parse()解析输出XML数据//打开XML文件$fp = fopen('note.xml','r');//循环读取并解析输出XML文件while($row = fread($fp,4096)){//当输出失败时输出错误信息xml_parse($parser,$row) or die(xml_error_string(xml_get_error_code($parser), xml_get_current_line_number($parser)));}//6.利用xml_parser_free()释放Expat解析器xml_parser_free($parser);


网页输出



结论

可以发现XML文件中note节点名称为小写字母,而在PHP代码中获取到的节点名称却是大写的,不论是在if语句里进行字符串比较还是网页内容输出,都是大写。而经过测试,节点值的大小写不改变,这里不再赘述。

0 0