PHPCon Poland 2024

XMLReader::expand

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

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

Описание

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

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

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

baseNode

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

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

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

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