PHP XML Expert解析器

PHP bulit-in-expert解析器提供了多种改进的XML解析技术。Expert是一个面向流的解析器。Expert解析器用于对XML文档进行读取、更新、创建和操作。XML Expert解析器函数是PHP核心的一部分。

XMl解析器有两种基本类型:

  • 基于树的解析器
    基于树的解析器用于将整个XML文档加载到内存中,并提供对树元素的访问。例如,文档对象模型(DOM)。
  • 基于事件的解析器
    基于事件的解析器用于在特定事件发生时调用函数来处理它。
PHP中什么是XML Expert解析器

php Expert解析器的例子

首先创建XML文件:

<?xml version="1.0" encoding="ISONO"?>

<note>
<to>onitroad_blog</to>
<from>jack</from>
<heading>xml</heading>

<body>xml body</body>
</note>

然后创建一个读取XML文件的PHP应用程序:

<?php
$parser=xml_parser_create();

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 stop($parser,$element_name)
{
	echo "<br />";
}

function char($parser,$data)

{
	echo $data;
}

xml_set_element_handler($parser,"start","stop");

xml_set_character_data_handler($parser,"char");

$fp=fopen("test.xml","r"); //open and reading a XML file.

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)));
}

xml_parser_free($parser);
?>
日期:2020-06-02 22:15:38 来源:oir作者:oir