【www.gdgbn.com--邮件处理】

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.111cn.net/phper/php.html  

 

本文来源:http://www.gdgbn.com/jiaocheng/17107/