PHPCon Poland 2024


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

XMLReader::expandВозвращает копию текущего узла в виде объекта DOM


public XMLReader::expand(?DOMNode $baseNode = null): DOMNode|false

Метод копирует текущий узел и возвращает объект DOM, который соответствует узлу.

Список параметров


Узел DOMNode определяет целевой документ DOMDocument созданного объекта DOM.

Возвращаемые значения

Метод возвращает результирующий объект DOMNode или false, если возникла ошибка.

add a note

User Contributed Notes 1 note

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 :


// 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') {

// 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