PHP Conference Nagoya 2025

xml_parser_create_ns

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

xml_parser_create_nsCrea un analizador XML con soporte para espacios de nombres

Descripción

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

xml_parser_create_ns() crea un nuevo analizador XML con soporte para espacios de nombres XML y devuelve un gestor de recurso que hace referencia al mismo, para poder utilizarlo con las demás funciones de XML.

Parámetros

encoding

El parámetro opcional encoding especifica la codificación de caracteres para la entrada y salida en PHP4. A partir de PHP5, la codificación de entrada es detectada automáticamente, así que el parámetro encoding especifica sólo la codificación de salida. En PHP 4, la codificación de salida predeterminada es la misma que la del juego de caracteres de la entrada. En PHP 5.0.0 y 5.0.1, el juego de caracteres predeterminado es ISO-8859-1, mientras que en PHP 5.0.2 y posterior es UTF-8. Las codificaciones soportadas son ISO-8859-1, UTF-8 y US-ASCII.

separator

Con un analizador que tiene en cuenta los espacios de nombres, los parámetros de etiquetas pasados a las diferentes funciones gestoras consistirán en el espacio de nombres y el nombre de la etiqueta separado por el string especificado en separator.

Valores devueltos

Devuelve un gestor de recurso para el nuevo analizador XML.

Ver también

add a note

User Contributed Notes 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