PHP 8.4.1 Released!

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getDocNamespaces Devuelve los espacios de nombre declarados en el documento

Descripción

public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $from_root = true): array

Devuelve los espacios de nombres declarados en el documento

Parámetros

recursive

Si se especifica, devuelve todos los espacios de nombre declarados en los nodos padre e hijos. De lo contrario, devuelve únicamente el espacio de nombre declarado en el nodo raíz.

from_root

Permite comprobar recursivamente espacios de nombre bajo un nodo hijo en lugar de desde la raíz del documento XML.

Valores devueltos

El método getDocNamespaces devuelve un array de nombres de espacios de nombre con sus URIs asociadas.

Ejemplos

Ejemplo #1 Obtener los espacios de nombres del documento

<?php

$xml
= <<<XML
<?xml version="1.0" standalone="yes"?>
<gente xmlns:p="http://example.org/ns">
<p:persona id="1">John Doe</p:persona>
<p:persona id="2">Susie Q. Public</p:persona>
</gente>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

El resultado del ejemplo sería:

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Ejemplo #2 Trabajando con múltiples espacios de nombre

<?php

$xml
= <<<XML
<?xml version="1.0" standalone="yes"?>
<gente xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:persona t:id="1">John Doe</p:persona>
<p:persona t:id="2" a:direccion="Calle 123" xmlns:a="http://example.org/addr">
Susie Q. Public
</p:person>
</gente>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

El resultado del ejemplo sería:

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Historial de cambios

Versión Descripción
5.4.0 Se añadió el parámetro from_root.

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top