PHP 8.4.1 Released!

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_parser_create_ns创建支持命名空间的 XML 解析器

说明

xml_parser_create_ns(?string $encoding = null, string $separator = ":"): XMLParser

xml_parser_create_ns() 新建支持 XML 命名空间的解析器并返回可被其它 XML 函数使用的 XMLParser 实例。

参数

encoding

自动检测输入编码,因此 encoding 参数仅指定输出编码。默认输出字符集是 UTF-8。支持的编码有 ISO-8859-1UTF-8US-ASCII

separator

使用名称空间感知的解析器标记参数传递给各种处理函数将由名称空间和标记名称组成,这些名称由 separator 中指定的字符串分隔。

返回值

返回新 XMLParser 实例。

更新日志

版本 说明
8.0.0 此函数现在返回 XMLParser 实例;之前返回 resource, 或者在失败时返回 false
8.0.0 encoding 现在可以为 null。

参见

添加备注

用户贡献的备注 2 notes

up
2
jonnyNO at SPAM dot sanriowasteland dot net
22 years ago
This is from the Expat Function Reference by Clark Cooper, which is a reference to the C api.

"XML_Parser XML_ParserCreateNS(const XML_Char*encoding, XML_Char sep)
Constructs a new parser that has namespace processing in effect. Namespace expanded element names and attribute names are returned as a concatenation of the namespace URI, sep, and the local part of the name. This means that you should pick a character for sep that can't be part of a legal URI."

(from http://www.xml.com/pub/a/1999/09/expat/reference.html)

So thats what this function is for. Now you know.
up
0
bishop at php dot net
5 years ago
Internals has proposed[1] changing this extension from resource-based to object-based. When this change is made, xml_parser_create_ns will return an object, not a resource. Application developers are encouraged to replace any checks for explicit success, like:

<?php
$res
= xml_parser_create_ns(/*...*/);
if (!
is_resource($res)) {
// ...
}
?>

With a check for explicit failure:
<?php
$res
= xml_parser_create_ns(/*...*/);
if (
false === $res) {
// ...
}

[
1]: https://marc.info/?l=php-internals&m=154998365013373&w=2
To Top