手册

目录

XML Expat

收藏702

阅读2675

更新时间2025-08-06

XML Expat 解析器

Expat 解析器是一个基于事件的解析器。

请看以下的 XML 片段:

Jani

一个基于事件的解析器会将上述 XML 报告为一系列三个事件:

  • 开始元素:from
  • 开始 CDATA 部分,值:Jani
  • 关闭元素:from

XML Expat 解析器函数是 PHP 核心的一部分。使用这些函数无需安装。

XML 文件

在下面的例子中将使用 XML 文件 "note.xml":



Tove
Jani
Reminder
Don't forget me this weekend!

初始化 XML Expat 解析器

我们希望在PHP中初始化 XML Expat 解析器,为不同的 XML 事件定义一些处理程序,然后解析 XML 文件。

实例

";
    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 "
"; } // 在找到字符数据时使用的函数 function char($parser,$data) { echo $data; } // 指定元素处理程序 xml_set_element_handler($parser,"start","stop"); // 指定数据处理程序 xml_set_character_data_handler($parser,"char"); // 打开 XML 文件 $fp=fopen("note.xml","r"); // 读取数据 while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML 错误:%s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } // 释放 XML 解析器 xml_parser_free($parser); ?>

运行实例

例子解释:

  • 使用 xml_parser_create() 函数初始化 XML 解析器
  • 创建与不同事件处理程序一起使用的函数
  • 添加 xml_set_element_handler() 函数,以指定解析器在遇到开始和结束标记时将执行哪个函数
  • 添加 xml_set_character_data_handler() 函数,以指定解析器在遇到字符数据时将执行哪个函数
  • 使用 xml_parse() 函数解析 "note.xml" 文件
  • 如果出现错误,请添加 xml_error_string() 函数以将 XML 错误转换为文本描述
  • 调用 xml_parser_free() 函数,以释放使用 xml_parser_create() 函数分配的内存

PHP XML Expat 解析器参考手册

有关 PHP Expat 函数的更多信息,请访问我们的 PHP XML 解析器参考手册。

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号