(PHP 5 >= 5.1.2, PHP 7)
SimpleXMLElement::getDocNamespaces — Devuelve los espacios de nombre declarados en el documento
$recursive
= FALSE
[, bool $from_root
= TRUE
]] ) : arrayDevuelve los espacios de nombres declarados en el documento
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.
El método getDocNamespaces devuelve un array de nombres de espacios de nombre con sus URIs asociadas.
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" }
Versión | Descripción |
---|---|
5.4.0 |
Se añadió el parámetro from_root .
|