DOMDocument::xinclude

(PHP 5, PHP 7, PHP 8)

DOMDocument::xinclude Reemplaza los XIncludes en un objeto DOMDocument

Descripción

public DOMDocument::xinclude(int $options = 0): int|false

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.

Parámetros

options

Bitwise OR of the libxml option constants.

Valores devueltos

Devuelve el número de XIncludes del documento, -1 si ocurre un error durante el proceso, o false si no hay sustitución.

Ejemplos

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>