xml_parser_create_ns
创建具有名称空间支持的XML解析器
PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8
xml_parser_create_ns() 函数创建一个 XML 解析器,它支持命名空间,并返回一个解析器的句柄。该解析器可以用于解析包含命名空间的 XML 数据。
resource xml_parser_create_ns ([string $encoding = "ISO-8859-1"], string $separator = ":")
返回一个解析器句柄,若创建失败,则返回 false。
以下是一个创建 XML 解析器并使用它解析 XML 数据的简单示例:
<?php // 创建一个支持命名空间的 XML 解析器 $parser = xml_parser_create_ns("UTF-8", ":"); <p>if (!$parser) {<br> echo "创建解析器失败!";<br> exit;<br> }</p> <p>// 设置回调函数处理 XML 数据<br> xml_set_element_handler($parser, "startElement", "endElement");<br> xml_set_character_data_handler($parser, "characterData");</p> <p>// 要解析的 XML 数据<br> $xml_data = "<book xmlns:author='http://example.com/author'><a class="cursor-pointer" rel="noopener">author:name</a>John</author:name><title>PHP Guide</title></book>";</p> <p>// 解析 XML 数据<br> if (!xml_parse($parser, $xml_data)) {<br> echo "XML 解析失败!";<br> } else {<br> echo "XML 解析成功!";<br> }</p> <p>// 释放解析器<br> xml_parser_free($parser);</p> <p>function startElement($parser, $name, $attrs) {<br> echo "开始元素: $name\n";<br> }</p> <p>function endElement($parser, $name) {<br> echo "结束元素: $name\n";<br> }</p> <p>function characterData($parser, $data) {<br> echo "字符数据: $data\n";<br> }<br> ?><br>
在这个示例中,我们首先创建了一个支持命名空间的 XML 解析器,并指定字符编码为 UTF-8,命名空间分隔符为冒号(:)。然后通过设置回调函数来处理解析过程中的元素和字符数据。解析完成后,我们释放了解析器。