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

原创 2015年11月20日 16:08:18

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语句里进行字符串比较还是网页内容输出,都是大写。而经过测试,节点值的大小写不改变,这里不再赘述。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用PHP工具包expat解析XML

用PHP工具包expat解析XML作者:BUILDER.COM  如今人人鼓吹XML是Web开发者最好的朋友,有了XML的帮忙,后者即可轻松地格式化和显示来自几乎任何数据源的数据。但是,对动态内容而言...
  • bjbs_270
  • bjbs_270
  • 2004年10月18日 11:07
  • 1075

Expat 解析器 xml php

内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能。什么是 XML?XML 用于描述数据,其焦点是数据是什么。XML 文件描述了数据的结构。在 XML 中,没有预定义的标签。您必须定...
  • taipingliebeiluo
  • taipingliebeiluo
  • 2010年08月27日 16:11
  • 382

PHP XML Expat 解析器

XML Expat 解析器是 PHP 核心的组成部分。无需安装就可以使用这些函数。 XML 文件: George John Reminder Don't forget the meeting...
  • qilixiang012
  • qilixiang012
  • 2014年04月01日 22:02
  • 996

使用Expat XML解析器的例子

2011-05-30 19:32:32|  分类: 默认分类 |字号 订阅 工作原理:  1 . Initialize the XML parser with the xml_parser_cre...
  • bingqingsuimeng
  • bingqingsuimeng
  • 2012年08月06日 17:57
  • 3320

expat XML解析器

工作中用到了EXPAT,为了以后查询方便,把网上搜索到的内容综合整理如下。 win32 plat下的c/c++下使用expat。 expat是基于sax来进行xml解析而不是dom解析。因此,在e...
  • fcryuuhou
  • fcryuuhou
  • 2013年10月22日 17:29
  • 5087

简单强大的xml解析器

LiteXmla lite and power serializable&deserializable xml parser
  • longweiwei9
  • longweiwei9
  • 2016年07月18日 23:43
  • 1517

XmlParser: 简易的 Xml 解析器的实现(二)

一、引言在上一篇博客里,我主要架构了一个 xml 解析器的三大模块,分别是读取模块、解析模块、获取数据模块,并在尽快实现整体架构的目标下,实现了一个非常简略的 xml 解析器。想要了解 xml 解析器...
  • u012814856
  • u012814856
  • 2017年06月30日 14:18
  • 649

EXPAT(XML解析库)

expat是一个由C语言编写的XML解析库。James Clark创建了这个库,现在是制定XML标准的W3组织的技术leader。现在的版本是2.0。2.0开始就由Clark Cooper领导的开发组...
  • lhzhang1985
  • lhzhang1985
  • 2013年03月13日 11:12
  • 2153

别人写了一个mircro XML解析器,附源代码

mirco 的意思是比 tiny 还要 tiny。   GUI 模板用 XML 做是最合适的。方便嵌入脚本,方便编辑修改,方便嵌入皮肤描述,用 XML 做模板,写起 GUI 编辑器也要方便得多。 ...
  • zxxSsdsd
  • zxxSsdsd
  • 2013年12月02日 18:48
  • 929

Expat XML解析器的介绍

互联网发展得很快,都是源自于使用了超文本的表达方式。比如你查看一篇文章,看到不懂的关键字,就可以通过链接去查看它的内容,看完之后再回来接着看原来的东西,这样比较适合学习的方式。使用HTML标记的文本,...
  • bigapple88
  • bigapple88
  • 2010年04月20日 17:18
  • 1928
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP的三种XML解析器之Expat解析器(一)
举报原因:
原因补充:

(最多只允许输入30个字)