(PHP 5 >= 5.1.2)
SimpleXMLElement::getDocNamespaces — Retourne les espaces de noms déclarés dans un document
$recursive
= false
] )Retourne les espaces de noms déclarés dans un document.
recursive
Si spécifié, retourne tous les espaces de noms déclarés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms déclarés dans le noeud racine.
La méthode getDocNamespaces retourne un tableau d'espaces de noms avec leurs URL associées.
Exemple #1 Récupère les espaces de noms du document
<?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);
?>
L'exemple ci-dessus va afficher :
array(1) { ["p"]=> string(21) "http://example.org/ns" }
Exemple #2 Travail avec plusieurs espaces de noms
<?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);
?>
L'exemple ci-dessus va afficher :
array(3) { ["p"]=> string(21) "http://example.org/ns" ["t"]=> string(23) "http://example.org/test" ["a"]=> string(23) "http://example.org/addr" }