(PHP 5, PHP 7, PHP 8)
DOMDocument::xinclude — Remplace les XIncludes dans un objet DOMDocument
Cette méthode remplace les » XIncludes dans un objet DOMDocument.
Note:
Vu que la bibliothèque libxml2 résout automatiquement les entités, cette méthode peut produire des résultats non attendus si le fichier XML inclus a une DTD attachée.
Il est recommandé de ne pas appeler cette méthode sur du XML non fiable,
car les XIncludes peuvent inclure des fichiers provenant de sites web
externes (lorsque l'attribut href est une URL) ou des
fichiers locaux arbitraires (lorsque l'attribut href
utilise file://).
Retourne le nombre de XIncludes du document, -1 si une erreur survient
lors du processus, ou false s'il n'y a aucune substitution.
Exemple #1 Exemple avec DOMDocument::xinclude()
<?php
$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Les livres d'une autre personne</title>
<para>
<xi:include href="examples/book.xml">
<xi:fallback>
<error>xinclude: book.xml n'a pas été trouvé</error>
</xi:fallback>
</xi:include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;
// Nous voulons un joli affichage
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
// chargement de la chaîne XML définie ci-dessus
$dom->loadXML($xml);
// remplacement des xincludes
$dom->xinclude();
echo $dom->saveXML();
?>Résultat de l'exemple ci-dessus est similaire à :
<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Les livres d'une autre personne</title>
<para>
<row xml:base="/home/didou/book.xml">
<entry>The Grapes of Wrath</entry>
<entry>John Steinbeck</entry>
<entry>en</entry>
<entry>0140186409</entry>
</row>
<row xml:base="/home/didou/book.xml">
<entry>The Pearl</entry>
<entry>John Steinbeck</entry>
<entry>en</entry>
<entry>014017737X</entry>
</row>
<row xml:base="/home/didou/book.xml">
<entry>Samarcande</entry>
<entry>Amine Maalouf</entry>
<entry>fr</entry>
<entry>2253051209</entry>
</row>
</para>
</chapter>