如果您想了解更多有关XML ,请访问我们的XML指南。
有两个基本类型的XML解析器:
XML是什么?
XML是用来描述数据并把重点放在什么样的数据是。一个XML文件描述的结构数据。
的W3C DOM分为不同部分(核心, XML和HTML )和不同层次( 1/2/3级的DOM ) :
PHP XML Expat Parser
树为基础的剖析:这分析器转换XML文件成一个树状结构。分析了整个文件,并提供进入树要素
基于事件的剖析:观XML文件的一系列活动。当某一特定事件发生时,它要求一个函数来处理它
在DOM解析器是一个树为基础的剖析。
基于事件的解析器重点内容的XML文件,而不是其结构。正因为如此,基于事件的剖析器可以存取数据速度快于树为基础的解析器。
内置的DOM解析器可以处理XML文档在PHP 。
看看下面的XML部分:
*核心的DOM 定义一套标准的对象结构的任何文件
*的XML的DOM 定义一套标准的对象的X ML文件
*的HTML的DOM 定义一套标准的对象为H TML文件
什么是外籍人士?
要阅读和更新-创建和操纵-一个XM L文件,您需要一个XM L解析器。
安装
的DOM XML解析器职能是PHP核心的一部分。没有安装即可使用这些功能。
在XML中,没有预先确定的标记。你必须定义自己的标记。
如果您想了解更多有关的XML的DOM ,请访问我们的XML的DOM教程。
<from>Jani</from>
一种基于事件的剖析报告的XML上述一系列三项活动:
开始元素:从
资料,一节开始,价值:贾尼
关闭内容:从
在上述范例的XML包含格式良好的XML 。然而,例如不能有效的XML ,因为没有任何文档类型定义( DTD的)与此相关。
然而,这并没有差异时,使用外籍分析器。外籍人士是一个非验证剖析,并忽略任何DTDs 。
作为一个基于事件的,非验证XML分析器,外籍速度快,小,适合PHP的Web应用。
注: XML文件必须有充分的形成或外籍人士将产生一个错误。
安装
外籍人士的XML解析器职能是PHP核心的一部分。没有安装即可使用这些功能。
一个XML文件
XML档案下文将用于我们的榜样<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
初始化XML解析器
我们要初始化XML解析器在PHP中,确定了不同的处理XML的事件,然后解析XML文件。
例如<?php
//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 <br />";
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 "<br />";
}
//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
本文由宝马娱乐在线发布于网络频道,转载请注明出处:PHP XML Expat Parser【宝马娱乐在线网址】