Ah ok le NS était subtil...
Mais c'est pareil, sauf que tu limites à un namespace. Si tu regardes l'exemple de la doc c'est assez clair:
http://www.php.net/manual/en/domdocumen ... namens.php
Dans le document XML présenté on voit deux balises "include": <xi:include> et <include>
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
<xi:include href="book.xml">
<xi:fallback>
<error>xinclude: book.xml not found</error>
</xi:fallback>
</xi:include>
<include>
This is another namespace
</include>
</para>
</chapter>
Si on recherche les balises "include", en limitant au namespace xi, on en aura qu'une :
<?php
$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
<xi:include href="book.xml">
<xi:fallback>
<error>xinclude: book.xml not found</error>
</xi:fallback>
</xi:include>
<include>
This is another namespace
</include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;
// load the XML string defined above
$dom->loadXML($xml);
foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>
local name: include, prefix: xi
http://fr.wikipedia.org/wiki/Espace_de_noms
Sinon pour récupérer la valeur d'un attribut, voir la classe DomElement:
http://www.php.net/manual/en/domelement ... ribute.php