XML 代表可扩展标记语言,它是一种用于 Web 上结构化文档交换的数据格式。它是由万维网联盟 (W3C) 定义的标准。

此 PHP 扩展使用 Expat XML 解析器。 Expat 是一个基于事件的解析器,它将 XML 文档视为一系列事件。当事件发生时,它会调用指定的函数来处理它。

Expat 允许您解析但不能验证 XML 文档。它支持 PHP 提供的三种源字符编码:US-ASCII、ISO-8859-1 和 UTF-8。不支持 UTF-16。

由于 Expat 是基于事件的非验证解析器,因此速度很快且非常适合 Web 应用程序。此扩展允许您创建 XML 解析器,然后为不同的 XML 事件定义处理程序。

安装

无需安装即可使用此扩展。该扩展是 PHP 核心的一部分。默认情况下启用此扩展。可以通过在编译时使用以下选项来禁用它:--disable-xml。

运行时配置

此扩展没有在php.ini中定义任何配置指令。

PHP XML 解析器函数

函数说明
utf8_decode()将 UTF-8 字符串解码为 ISO- 8859-1.
utf8_encode()将 ISO-8859-1 字符串编码为 UTF-8。
xml_get_current_byte_index()获取 XML 解析器的当前字节索引。
xml_get_current_column_number()获取 XML 解析器的当前列号。
xml_get_current_line_number()获取 XML 的当前行号
xml_get_error_code()获取 XML 解析器错误代码。
xml_error_string()获取 XML 解析器错误字符串。
xml_parse() 开始解析 XML 文档。
xml_parse_into_struct()将XML数据解析为数组结构。
xml_parser_create()创建 XML 解析器。
xml_parser_create_ns()创建支持命名空间的 XML 解析器。
xml_parser_free()免费 XML 解析器。
xml_parser_get_option()从 XML 解析器获取选项.
xml_parser_set_option()在 XML 解析器中设置选项。
xml_set_character_data_handler( )设置字符数据处理程序。
xml_set_default_handler()设置默认处理程序。
xml_set_element_handler()设置开始和结束元素处理程序。
xml_set_external_entity_ref_handler()设置外部实体引用处理程序。
xml_set_notation_decl_handler()设置符号声明处理程序。
xml_set_object()在对象内使用 XML 解析器。
xml_set_processing_instruction_handler()设置处理指令 (PI) 处理程序。
xml_set_start_namespace_decl_handler()设置启动命名空间声明处理程序。
xml_set_unparsed_entity_decl_handler()设置未解析的实体声明处理程序。

PHP XML 解析器预定义常量

以下常量由此扩展定义,并且仅当扩展已编译为 PHP 或在运行时动态加载时才可用。

常量
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_OPTION_CASE_FOLDING(整数)
XML_OPTION_TARGET_ENCODING(整数)
XML_OPTION_SKIP_TAGSTART(整数)
XML_OPTION_SKIP_WHITE(整数) )
XML_SAX_IMPL(字符串)- 保存 SAX 实现方法。可以是 libxmlexpat