PHP XML 解析器允许读取、创建、更新和操作 XML 文档。 XML 语言用于构建跨网站的共享数据。它的扩展使用 Expect XML 解析器。 XML 函数解析 XML 文档,但不验证。 PHP 中有两种类型的 XML 解析器:基于三种的解析器和基于事件的解析器。 Expat 是基于事件的解析器;它是一个基于事件的(当事件发生时调用处理函数),它是一个非验证解析器(不验证并忽略文档的 DTD 链接,但如果文档的格式不正确,那么它将结束并抛出错误消息),因此它适合 Web 应用程序,而且速度很快。 PHP 不需要安装 XML 解析器,因为它是核心 PHP 的一部分。
广告
该类别中的热门课程
PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
PHP XML 解析器的常量列表是 –
- XML_ERROR_NONE – 数据类型整数。
- XML_ERROR_SYNTAX – 数据类型整数。
- XML_ERROR_NO_MEMORY – 数据类型整数。
- XML_ERROR_INVALID_TOKEN – 数据类型整数。
- XML_ERROR_NO_ELEMENTS – 数据类型整数。
- XML_ERROR_UNCLOSED_TOKEN – 数据类型整数。
- XML_ERROR_PARTIAL_CHAR – 数据类型整数。
- XML_ERROR_TAG_MISMATCH – 数据类型整数。
- XML_ERROR_DUPLICATE_ATTRIBUTE – 数据类型整数。
- XML_ERROR_UNDEFINED_ENTITY – 数据类型整数。
- XML_ERROR_JUNK_AFTER_DOC_ELEMENT – 数据类型整数。
- XML_ERROR_PARAM_ENTITY_REF – 数据类型整数。
- XML_ERROR_RECURSIVE_ENTITY_REF – 数据类型整数。
- XML_ERROR_ASYNC_ENTITY – 数据类型整数。
- XML_ERROR_BAD_CHAR_REF – 数据类型整数。
- XML_ERROR_MISPLACED_XML_PI – 数据类型整数。
- XML_ERROR_BINARY_ENTITY_REF – 数据类型整数。
- XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF – 数据类型整数。
- XML_ERROR_UNKNOWN_ENCODING – 数据类型整数。
- XML_ERROR_INCORRECT_ENCODING – 数据类型整数。
- XML_ERROR_EXTERNAL_ENTITY_HANDLING – 数据类型整数。
- XML_ERROR_UNCLOSED_CDATA_SECTION – 数据类型整数。
- XML_OPTION_CASE_FOLDING – 数据类型整数。
- XML_OPTION_TARGET_ENCODING – 数据类型整数。
- XML_OPTION_SKIP_TAGSTART – 数据类型整数。
- XML_OPTION_SKIP_WHITE – 数据类型整数。
- XML_SAX_IMPL – 数据类型字符串。
PHP XML 解析器的功能
PHP XML 解析器的功能有:
- utf8_decode() – 该函数用于将 UTF-8 字符串解码为 ISO-8859-1。
- utf8_encode() – 该函数用于将 ISO-8859-1 字符串编码为 UTF-8。
- xml_get_current_column_number() – 该函数用于从 XML 解析器获取当前列号。
- xml_get_current_byte_index() – 该函数用于获取 XML 解析器的当前字节索引。
- xml_get_current_line_number() – 该函数用于获取 XML 解析器的当前行号。
- xml_error_string() – 此函数用于获取错误(如果 XML 解析器中存在错误)。
- xml_get_error_code() – 此函数用于获取 XML 解析器中的错误代码(如果有)。
- xml_parse() – 该函数用于对 XML 文档执行解析操作。
- xml_parse_into_struct() – 该函数用于将 XML 数据解析为数组。
- xml_parser_create() – 该函数用于创建 XML 解析器
- xml_parser_create_ns() – 该函数用于创建具有命名空间的 XML 解析器。
- xml_parser_free() – 该函数用于释放 XML 解析器。
- xml_parser_set_option() – 该函数用于将选项设置到 XML 解析器中。
- xml_parser_get_option() – 该函数用于获取 XML 解析器的选项。
- xml_set_default_handler() – 该函数用于设置 XML 解析器中的默认数据处理程序。
- xml_set_character_data_handler() – 该函数用于设置 XML 解析器中的字符数据处理程序。
- xml_set_end_namespace_decl_handler() – 该函数用于设置 XML 解析器的名称空间声明处理程序的结束。
- xml_set_external_entity_ref_handler() – 该函数用于设置 XML 解析器的外部实体引用处理程序。
- xml_set_object() – 该函数用于允许对象使用 XML 解析器。
- xml_set_processing_instruction_handler() – 该函数用于设置 XML 解析器的处理指令处理程序。
- xml_set_notation_decl_handler() – 该函数用于设置 XML 解析器的符号声明处理程序。
- xml_set_unparsed_entity_decl_handler() – 该函数用于将 XML 解析器的处理函数设置为未解析的实体声明。
- xml_set_element_handler() – 该函数用于设置 XML 解析器的元素处理程序的开始和结束。
- xml_set_start_namespace_decl_handler() – 该函数用于设置 XML 解析器的起始命名空间声明处理程序。
PHP XML 解析器示例
用于读取数组中的 XML 文件的 PHP XML 解析器示例 –
接下来,我们编写 PHP 代码来更清楚地了解 PHP XML 解析器,通过以下示例,其中 XML 解析器用于读取 XML 数据文件并存储到数组中,如下所示 –
示例#1
首先,我们创建名为“Examplefile.xml”的 XML 数据文件,并生成数据内容为 –
<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
<record no = "100">
<name> John </name>
<position> Clerk </position>
</record>
<record no = "101">
<name> Sam </name>
<position> Sales Manager </position>
</record>
<record no = "102">
<name> Jaan </name>
<position> Sales Executive </position>
</record>
</employees>
Next create the php file as below -
<!DOCTYPE html>
<html>
<body>
<?php
// using this function to creates an XML parser
$xmlparser = xml_parser_create();
// opening the xml file to read
$file = fopen("Examplefile.xml", "r");
//freeing the memory when read is done with
$xml_data = fread($file, 4096);
// Parsing the XML data of the file into an array
xml_parse_into_struct($xmlparser,$xml_data,$values);
// This function is using to frees the XML parser
xml_parser_free($xmlparser);
// printing the values from the xml file
print_r($values);
// closing the xml file
fclose($file);
?>
</body>
</html>
输出:
如上面的程序,创建了XML解析器,然后打开“Examplefile.xml”文件,读取该文件的XML数据并将其解析为数组;正如我们所看到的,它也在输出中打印。
结论
PHP XML 解析器允许读取、创建、更新和操作 XML 文档。 XML 解析器具有上面讨论的常量和函数。
以上是PHP XML 解析器的详细内容。更多信息请关注PHP中文网其他相关文章!