首页博客网络编程
XML 是一种通用格式,用于以人和计算机均可读取的纯文本形式存储数据。XML 解析意味着获取 XML 文档并将其转换为准备读取和执行的代码。
PHP 编码语言具有内置函数和预定义的常量,用于 Expat XML 解析器。在本教程中,我们将详细解释它们。
XML 函数允许您分析 XML 文档,但不能验证它们。
Expat 是一个基于事件的解析器,它允许您在 PHP 中处理和管理 XML 文档。
Expat 是一个基于事件的解析器。像这样的解析器将 XML 文件作为事件序列,在事件发生时调用指定的函数来处理它。这使得它轻量级,非常适合快速的Web应用程序。
它是一个非验证解析器,并忽略可能链接到文档的 DTD。如果文档的格式不正确,它将以 XML 分析错误消息结尾。
记得:Expat 解析器不是为文档验证而设计的。但是,如果检测到某些格式问题,您将收到一条错误消息通知。
看看下面的列表。可用于 XML 分析的函数按字母顺序列出。
注意:所有这些函数都是 PHP 的一部分。因此,您无需安装任何第三方应用程序。
在右边的列中,指示了某个函数有效的 PHP 版本:
功能 | 描述 | PHP版本 |
---|---|---|
utf8_decode() | 将 UTF-8 字符串解码为 ISO-8859-1 | 3 及更高版本 |
utf8_encode() | 将 ISO-8859-1 字符串编码为 UTF-8 | 3 及更高版本 |
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 分析器中使用的目标编码。 |
PHP 有一个内置的扩展,用于一个名为 Expat 的基于事件的轻量级 XML 解析器。基于事件的解析器将 XML 文件视为一系列单个事件。
Expat 允许用户解析 XML 文件,但无法验证它们。如果某个文档的格式不正确,则会显示一条错误消息。
您可以使用本教程中列出的 PHP XML 函数来启动 XML 解析器并在代码中定义 XML 事件处理程序。
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位