首页博客网络编程
PHP 函数和常量,用于更快、更高效的 XML 解析
摘要 PHP 有一个内置的扩展,用于一个名为 Expat 的基于事件的轻量级 XML 解析器。基于事件的解析器将 XML 文件视为一系列单个事件。 Expat 允许用户解析 XML 文件,但无法验证它们。如果某个文档的格式不正确,则会显示一条错误消息。 您可以使用本教程中列出的 PHP XML 函数来启动 XML 解析器并在代码中定义 XML 事件处理程序。

XML 是一种通用格式,用于以人和计算机均可读取的纯文本形式存储数据。XML 解析意味着获取 XML 文档并将其转换为准备读取和执行的代码。

PHP 编码语言具有内置函数和预定义的常量,用于 Expat XML 解析器。在本教程中,我们将详细解释它们。

内容

XML 解析:主要提示

  • XML 函数允许您分析 XML 文档,但不能验证它们。

  • Expat 是一个基于事件的解析器,它允许您在 PHP 中处理和管理 XML 文档。

外籍人士解析器

Expat 是一个基于事件的解析器。像这样的解析器将 XML 文件作为事件序列,在事件发生时调用指定的函数来处理它。这使得它轻量级,非常适合快速的Web应用程序。

它是一个非验证解析器,并忽略可能链接到文档的 DTD。如果文档的格式不正确,它将以 XML 分析错误消息结尾。

记得:Expat 解析器不是为文档验证而设计的。但是,如果检测到某些格式问题,您将收到一条错误消息通知。

函数列表

看看下面的列表。可用于 XML 分析的函数按字母顺序列出。

注意:所有这些函数都是 PHP 的一部分。因此,您无需安装任何第三方应用程序。

在右边的列中,指示了某个函数有效的 PHP 版本:

功能描述PHP版本
utf8_decode()将 UTF-8 字符串解码为 ISO-8859-13 及更高版本
utf8_encode()将 ISO-8859-1 字符串编码为 UTF-83 及更高版本
xml_error_string()获取 XML 分析错误字符串3 及更高版本
xml_get_current_byte_index()从 PHP XML 解析器获取当前字节索引3 及更高版本
xml_get_current_column_number()从 PHP XML 解析器获取当前列号3 及更高版本
xml_get_current_line_number()从 PHP XML 解析器获取当前行号3 及更高版本
xml_get_error_code()获取 XML 分析错误代码3 及更高版本
xml_parse()分析 XML 文档3 及更高版本
xml_parse_into_struct()将 XML 数据解析为数组值3 及更高版本
xml_parser_create_ns()创建具有命名空间支持的 XML 解析器4 及更高版本
xml_parser_create()创建 PHP XML 解析器3 及更高版本
xml_parser_free()释放 PHP XML 解析器3 及更高版本
xml_parser_get_option()从 PHP XML 解析器获取选项3 及更高版本
xml_parser_set_option()在 PHP XML 解析器中设置选项3 及更高版本
xml_set_character_data_handler()设置用于处理字符数据的处理程序函数3 及更高版本
xml_set_default_handler()设置默认处理程序函数3 及更高版本
xml_set_element_handler()设置处理元素的开始和结束元素的处理程序函数3 及更高版本
xml_set_end_namespace_decl_handler()设置用于处理命名空间声明结尾的处理程序函数4 及更高版本
xml_set_external_entity_ref_handler()设置用于处理外部实体的处理程序函数3 及更高版本
xml_set_notation_decl_handler()设置用于处理符号声明的处理程序函数3 及更高版本
xml_set_object()在对象中使用 PHP XML 解析器4 及更高版本
xml_set_processing_instruction_handler()设置处理处理指令的处理程序功能3 及更高版本
xml_set_start_namespace_decl_handler()设置用于处理命名空间声明开头的处理程序函数4 及更高版本
xml_set_unparsed_entity_decl_handler()设置处理程序函数以处理未解析的实体声明3 及更高版本

错误代码和常量

在解析过程中可能会遇到错误。以下是函数可以返回的错误代码xml_parse()

不断
XML_ERROR_NONE(国际)
XML_ERROR_NO_MEMORY(整数)
XML_ERROR_SYNTAX(整数)
XML_ERROR_NO_ELEMENTS(整型)
XML_ERROR_INVALID_TOKEN(国际)
XML_ERROR_UNCLOSED_TOKEN(国际)
XML_ERROR_PARTIAL_CHAR(整数)
XML_ERROR_TAG_MISMATCH(整型)
XML_ERROR_DUPLICATE_ATTRIBUTE(国际)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT(国际)
XML_ERROR_PARAM_ENTITY_REF(整数)
XML_ERROR_UNDEFINED_ENTITY(国际)
XML_ERROR_RECURSIVE_ENTITY_REF(整型)
XML_ERROR_ASYNC_ENTITY(国际)
XML_ERROR_BAD_CHAR_REF(国际)
XML_ERROR_BINARY_ENTITY_REF(整型)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF(整型)
XML_ERROR_MISPLACED_XML_PI(整型)
XML_ERROR_UNKNOWN_ENCODING(整型)
XML_ERROR_INCORRECT_ENCODING(整数)
XML_ERROR_UNCLOSED_CDATA_SECTION(整数)
XML_ERROR_EXTERNAL_ENTITY_HANDLING(整型)

这些常量是 的参数:xml_parser_set_option

不断描述
XML_OPTION_CASE_FOLDING(国际)管理是否为 XML 分析器启用大小写折叠。默认情况下,它处于启用状态。
XML_OPTION_TARGET_ENCODING(国际)指示应从标记名称的开头跳过多少个字符。
XML_OPTION_SKIP_TAGSTART(整数)指示是否忽略包含空格字符的值。
XML_OPTION_SKIP_WHITE(国际)设置要在此 XML 分析器中使用的目标编码。

XML 解析:摘要

  • PHP 有一个内置的扩展,用于一个名为 Expat 的基于事件的轻量级 XML 解析器。基于事件的解析器将 XML 文件视为一系列单个事件。

  • Expat 允许用户解析 XML 文件,但无法验证它们。如果某个文档的格式不正确,则会显示一条错误消息。

  • 您可以使用本教程中列出的 PHP XML 函数来启动 XML 解析器并在代码中定义 XML 事件处理程序。


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/203

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位