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 实例,供其他 XML 函数使用。

参数

encoding

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

separator

对于支持命名空间的解析器,传递给各种处理程序函数的标签参数将由命名空间和标签名称组成,它们由 separator 中指定字符串分隔。

返回值

返回一个新的 XMLParser 实例。

变更日志

版本 描述
8.0.0 此函数现在返回一个 XMLParser 实例;以前,它返回一个 资源,或者在失败时返回 false
8.0.0 encoding 现在可以为空。

参见

添加注释

用户贡献的注释 2 个注释

jonnyNO at SPAM dot sanriowasteland dot net
22 年前
这来自 Clark Cooper 的 Expat 函数参考,它是对 C API 的参考。

"XML_Parser XML_ParserCreateNS(const XML_Char*encoding, XML_Char sep)
构造一个新的解析器,它在生效时具有命名空间处理功能。命名空间扩展的元素名称和属性名称以命名空间 URI、sep 和名称的本地部分的串联形式返回。这意味着您应该为 sep 选择一个不能作为合法 URI 部分的字符。

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

所以这就是这个函数的用途。现在你知道答案了。
bishop at php dot net
5 年前
内部人员建议[1] 将此扩展从基于资源更改为基于对象。当此更改生效时,xml_parser_create_ns 将返回一个对象,而不是资源。应用程序开发人员被鼓励将任何对显式成功的检查(例如

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

替换为对显式失败的检查
<?php
$res
= xml_parser_create_ns(/*...*/);
if (
false === $res) {
// ...
}

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