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

xml_parser_create_ns名前空間をサポートした XML パーサを生成する


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

xml_parser_create_ns() は XML 名前空間をサポートした 新しい XML パーサを作成し、他の XML 関数が使用する XMLParser インスタンスを返します。



入力のエンコーディングは 自動判定されるので、encoding パラメータは 出力のエンコーディングのみを指定することになります。 PHP 5.0.0 および 5.0.1 ではデフォルトの出力文字セットは ISO-8859-1 で、PHP 5.0.2 以降では UTF-8 です。サポートされるエンコーディングは ISO-8859-1UTF-8 および US-ASCII です。


名前空間を含めたタグパラメータをハンドラ関数に渡す際には、 名前空間名とタグ名を文字列 separator でつなげたものが使用されます。


新しい XMLParser のインスタンスを返します。


バージョン 説明
8.0.0 この関数は XMLParser のインスタンスを返すようになりました。 これより前のバージョンでは、リソースが返され、失敗した場合は false が返されていました。
8.0.0 encoding は、 nullable になりました。


add a note add a note

User Contributed Notes 2 notes

jonnyNO at SPAM dot sanriowasteland dot net
18 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.
bishop at php dot net
1 year 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:

= xml_parser_create_ns(/*...*/);
if (!
is_resource($res)) {
// ...

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

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