PHP XML Expat 解析器
作者:会飞的
<?xml version="1.0" encoding="utf-8"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<?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");
header('Content-Type: text/html; charset=utf-8');
//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);
?>
工作原理解释:通过 xml_parser_create() 函数初始化 XML 解析器
创建配合不同事件处理程序的的函数
添加 xml_set_element_handler() 函数来定义,当解析器遇到开始和结束标签时执行哪个函数
添加 xml_set_character_data_handler() 函数来定义,当解析器遇到字符数据时执行哪个函数
通过 xml_parse() 函数来解析文件 "test.xml"
万一有错误的话,添加 xml_error_string() 函数把 XML 错误转换为文本说明
调用 xml_parser_free() 函数来释放分配给 xml_parser_create() 函数的内存
猜你喜欢
您可能感兴趣的文章:
- 网站优化与搜索引擎优化的关系
- 网站优化知识手册:Google惩罚篇
- 网站优化知识手册:链接篇
- 网站优化中,链接就像填不满的黑洞
- 网站优化中如何选择链接锚文本
- 为什么网站优化是必要的网络营销方式
- 为什么要选择做网站优化
- 无形的网站优化
- 一个网站优化项目需要做哪些工作
- 站点地图与网站优化 网站地图的四个好处
- 做好整站优化才是真正的网站优化
- 做搜索引擎优化其实不单单考虑搜索引擎的算法
- ISSET()、empty()、is_numeric()的使用方法
- 排序算法
- 40个技巧优化您的PHP代码
- Access to the requested object is only available from the local network.
- ISSET()、empty()、is_numeric()使用方法
- ob_get_contents() 函数的用法
- PHP OOP思想