If there is no prefix (a default namespace), the empty string will be used as a key in the array referencing that namespace value.
The earliest ancestor will be used for overwriting any identical prefixes (or lack thereof).
SimpleXMLElement::getDocNamespaces
(PHP 5 >= 5.1.2)
SimpleXMLElement::getDocNamespaces — Returns namespaces declared in document
Description
array getDocNamespaces
([ bool $recursive
] )
Returns namespaces declared in document
Parameters
- recursive
-
If specified, returns all namespaces declared in parent and child nodes. Otherwise, returns only namespaces declared in root node.
Return Values
The getDocNamespaces method returns an array of namespace names with their associated URIs.
Examples
Example #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);
?>
Example #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);
?>
See Also
- SimpleXMLElement::getNamespaces - Returns namespaces used in document
- SimpleXMLElement::registerXPathNamespace - Creates a prefix/ns context for the next XPath query
SimpleXMLElement::getDocNamespaces
brettz9 aaat yah dot company
18-Feb-2009 03:29
18-Feb-2009 03:29
