(PHP 5 >= 5.1.2, PHP 7)
SimpleXMLElement::getDocNamespaces — Retorna los namespaces declarados en el documento
$recursive
= false
[, bool $from_root
= true
]] ) : arrayRetorna los namespaces declarados en el documento
recursive
Si se especifica, retorna todos los namespaces declarados en los nodos padre e hijos. De lo contrario, retorna únicamente el namespace declarado en el nodo raíz.
from_root
Permite comprobar recursivamente espacios de nombres bajo un nodo hijo en lugar de desde la raíz del documento XML.
El método getDocNamespaces retorna un array de nombres de namespaces con sus URIs asociadas.
Ejemplo #1 Obtener los namespaces 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 namespaces
<?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 .
|