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 定义为创建的 DOM 对象的目标 DOMDocument

返回值

生成的 DOMNode 或错误时为 false

添加注释

用户贡献的注释 1 则注释

0
Sbastien
2 年前
XMLReader::expand() 将当前子树扩展到 DOM。SimpleXML 也不错。为了避免使用 simplexml_import_dom() 时出现类似“导入的节点必须具有关联的文档”的警告,我们可以这样做

<?php

// 巨大的压缩 XML 文件
$xml = XMLReader::open('compress.zlib:///path/to/my-data.xml.gz');

// 针对一个小子树
while ($xml->name !== 'my-targeted-element') {
$xml->read();
}

// 技巧在这里...
// 子树在一个空文档中扩展...
$dom = $xml->expand(new DOMDocument());

// ... 可以通过 SimpleXML 导入
$sx = simplexml_import_dom($dom);

// 现在我们可以使用 SimpleXML $sx 处理我们的一个小子树
To Top