XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::expandGeçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

Açıklama

public XMLReader::expand(?DOMNode $düğüm = null): DOMNode|false

Geçerli düğümü kopyalar ve kopyayı bir DOM nesnesi olarak döndürür.

Bağımsız Değişkenler

düğüm

Oluşturulan DOM nesnesi için hedef DOMDocument nesnesini tanımlayan DOMNode nesnesi.

Dönen Değerler

Hata durumunda false, aksi takdirde elde edilen DOMNode nesnesi döner.

add a note add a note

User Contributed Notes 1 note

up
0
Sbastien
2 years ago
XMLReader::expand() expands the current subtree to DOM. SimpleXML is good too. To avoid a warning like "Imported Node must have associated Document" when using simplexml_import_dom(), we can do :

<?php

// Huge XML compressed file
$xml = XMLReader::open('compress.zlib:///path/to/my-data.xml.gz');

// Targeting a tiny subtree
while ($xml->name !== 'my-targeted-element') {
   
$xml->read();
}

// The trick is here...
// Subtree is expanded in an empty document...
$dom = $xml->expand(new DOMDocument());

// ... which can be imported by SimpleXML
$sx = simplexml_import_dom($dom);

// We can now process our tiny subtree with SimpleXML $sx
To Top