(PHP 5 >= 5.1.2, PHP 7, PHP 8)
SimpleXMLElement::getDocNamespaces —
Retourne les espaces de noms déclarés dans un document
Description
public
SimpleXMLElement::getDocNamespaces(bool
$recursive
=
false
, bool
$fromRoot
=
true
): array|false
Liste de paramètres
-
recursive
-
Si spécifié, retourne tous les espaces de noms déclarés dans les nœuds parents et enfants.
Sinon, retourne uniquement les espaces de noms déclarés dans le nœud racine.
-
fromRoot
-
Vous permet de vérifier récursivement les espaces de noms
sous un nœud fils au lieu d'effectuer cette vérification depuis
la racine du document XML.
Valeurs de retour
La méthode getDocNamespaces
retourne un tableau d'espaces de noms
avec leurs URL associées.
Exemples
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"
}
Voir aussi
- simplexmlelement::getNamespaces() - Retourne les espaces de noms utilisés dans un document
- simplexmlelement::registerXPathNamespace() - Crée un contexte préfixe/ns pour la prochaine requête XPath