PHP XML Expat Parser
内置的外籍分析器能够处理XML文档在PHP 。
XML是什么?
XML是用来描述数据并把重点放在什么样的数据是。一个XML文件描述的结构数据。
在XML中,没有预先确定的标记。你必须定义自己的标记。
如果您想了解更多有关XML ,请访问我们的XML指南。
什么是外籍人士?
要阅读和更新-创建和操纵-一个XM L文件,您需要一个XM L解析器。
有两个基本类型的XML解析器:
树为基础的剖析:这分析器转换XML文件成一个树状结构。分析了整个文件,并提供进入树的内容。例如:文档对象模型( DOM )
基于事件的剖析:观XML文件的一系列活动。当某一特定事件发生时,它要求一个函数来处理它
该外籍分析器是一个基于事件的剖析。
基于事件的解析器重点内容的XML文件,而不是其结构。正因为如此,基于事件的剖析器可以存取数据速度快于树为基础的解析器。
看看下面的XML部分:
Jani
一种基于事件的剖析报告的XML上述一系列三项活动:
开始元素:从
资料,一节开始,价值:贾尼
关闭内容:从
在上述范例的XML包含格式良好的XML 。然而,例如不能有效的XML ,因为没有任何文档类型定义( DTD的)与此相关。
然而,这并没有差异时,使用外籍分析器。外籍人士是一个非验证剖析,并忽略任何DTDs 。
作为一个基于事件的,非验证XML分析器,外籍速度快,小,适合PHP的Web应用。
注: XML文件必须有充分的形成或外籍人士将产生一个错误。
安装
外籍人士的XML解析器职能是PHP核心的一部分。没有安装即可使用这些功能。
一个XML文件
XML档案下文将用于我们的榜样Tove Jani Reminder Don't forget me this weekend!初始化XML解析器
我们要初始化XML解析器在PHP中,确定了不同的处理XML的事件,然后解析XML文件。
例如//Initialize the XML parser $parser=xml_parser_create();//Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo " Note
"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } }//Function to use at the end of an element function stop($parser,$element_name) { echo "
"; }//Function to use when finding character data function char($parser,$data) { echo $data; }//Specify element handler xml_set_element_handler($parser,"start","stop");//Specify data handler xml_set_character_data_handler($parser,"char");//Open XML file $fp=fopen("test.xml","r");//Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); }//Free the XML parser xml_parser_free($parser);?>输出结果如.Note To: Tove From: Jani Heading: Reminder Message: Don't forget me this weekend!它的原理就是:
初始化XML分析器与xml_parser_create ( )函数
创建职能,使用不同的事件处理程序
新增xml_set_element_handler ( )函数来指定哪些功能将被处死时,解析器遇到开幕式和闭幕式标签
新增xml_set_character_data_handler ( )函数来指定哪些功能将执行时遇到的分析器字符数据
解析文件“ test.xml ”的xml_parse ( )函数
如果在一个错误,新增xml_error_string ( )函数来转换XML错误的文字说明
呼叫xml_parser_free ( )函数来释放分配的内存与xml_parser_create ( )函数转载请注明来自: www.111com.net/phper/php.html