downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DOMDocumentFragment> <DOMDocument::validate
[edit] Last updated: Fri, 23 Mar 2012

view this page in

DOMDocument::xinclude

(PHP 5)

DOMDocument::xincludeBir DOMDocument nesnesindeki XInclude dosyalarını belgeye dahil eder

Açıklama

int DOMDocument::xinclude ([ int $seçenekler ] )

Bir DOMDocument nesnesinde, » XInclude mekanizması kullanılarak belgeye dahil edilen dosyaların içeriklerini yerlerine yerleştirir.

Bilginize:

libxml2'nin öğeleri özdevinimli olarak çözümlemesinden dolayı, eğer dahil edilen XML dosyanın kendine ekli bir DTD'si varsa bu yöntem beklenmedik sonuçlara yol açabilir.

Değiştirgeler

seçenekler

libxml sabitleri. PHP 5.1.0 ve Libxml 2.6.7'den itibaren kullanılabilmektedir.

Dönen Değerler

Belgeye dahil edilen dosyaların sayısı.

Örnekler

Örnek 1 - DOMDocument::xinclude() örneği

<?php

$xml 
= <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Yabancı kitapları</title>
 <para>
  <xi:include href="kitap.xml">
   <xi:fallback>
    <error>xinclude: kitap.xml dosyasına rastlanmadı</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// çıktı göze hoş görünsün
$dom->preserveWhiteSpace false;
$dom->formatOutput true;

// yutarıdaki XML dizgeyi yükleyelim
$dom->loadXML($xml);

// dahil edilecek dosyaların içeriklerini alalım
$dom->xinclude();

echo 
$dom->saveXML();

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Yabancı kitaplar</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>



add a note add a note User Contributed Notes DOMDocument::xinclude
nicolas_rainardNOSPAM at yahoo dot fr 12-Jul-2007 04:56
If you use the loadXML() method instead of the load() one (let's say, to process the XML string before loading and parsing it), you will have problems with xinclude(), because the parser will not know where to find the files to include.
Using chdir() before xinclude() will not help.

The solution is to set the documentURI property of the DOMDocument object accordingly to it's original filename, and everything will work fine !

<?php

$xml
= file_get_contents($file);
$xml = do_something_with($xml);

$doc = new DOMDocument;
$doc->documentURI = $file;
$doc->loadXML($xml);
$doc->xinclude();

?>

 
show source | credits | sitemap | contact | advertising | mirror sites