(PHP 5, PHP 7, PHP 8)
DOMDocument::xinclude — Reemplaza los XIncludes en un objeto DOMDocument
Este método reemplaza los » XIncludes en un objeto DOMDocument.
Nota:
Dado que la biblioteca libxml2 resuelve automáticamente las entidades, este método puede producir resultados no esperados si el fichero XML incluido tiene una DTD adjunta.
Devuelve el número de XIncludes del documento, -1 si ocurre un error
durante el proceso, o false
si no hay sustitución.
Ejemplo #1 Ejemplo con DOMDocument::xinclude()
<?php
$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Los libros de otra persona</title>
<para>
<xi:include href="examples/book.xml">
<xi:fallback>
<error>xinclude: book.xml no ha sido encontrado</error>
</xi:fallback>
</xi:include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;
// Se desea un bonito formato de salida
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
// carga del string XML definido anteriormente
$dom->loadXML($xml);
// reemplazo de los xincludes
$dom->xinclude();
echo $dom->saveXML();
?>
El resultado del ejemplo sería algo similar a:
<?xml version="1.0"?> <chapter xmlns:xi="http://www.w3.org/2001/XInclude"> <title>Los libros de otra persona</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>