SimpleXMLElement::getDocNamespaces
(PHP 5 >= 5.1.2)
SimpleXMLElement::getDocNamespaces — Returns namespaces declared in document
Descrição
public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false ] )
Returns namespaces declared in document
Parâmetros
- recursive
-
If specified, returns all namespaces declared in parent and child nodes. Otherwise, returns only namespaces declared in root node.
Valor Retornado
The getDocNamespaces method returns an array of namespace names with their associated URIs.
Exemplos
Exemplo #1 Get document namespaces
<?php
$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
<p:person id="1">John Doe</p:person>
<p:person id="2">Susie Q. Public</p:person>
</people>
XML;
$sxe = new SimpleXMLElement($xml);
$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);
?>
O exemplo acima irá imprimir:
array(1) { ["p"]=> string(21) "http://example.org/ns" }
Exemplo #2 Working with multiple namespaces
<?php
$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:person t:id="1">John Doe</p:person>
<p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
Susie Q. Public
</p:person>
</people>
XML;
$sxe = new SimpleXMLElement($xml);
$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);
?>
O exemplo acima irá imprimir:
array(3) { ["p"]=> string(21) "http://example.org/ns" ["t"]=> string(23) "http://example.org/test" ["a"]=> string(23) "http://example.org/addr" }
Veja Também
- SimpleXMLElement::getNamespaces() - Returns namespaces used in document
- SimpleXMLElement::registerXPathNamespace() - Creates a prefix/ns context for the next XPath query