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 实现方法。可以是 libxml 或 expat。 |