默认扩展节点(问题中缺少)
$node = $xmlReader->expand();
使用XMLReader无法编辑
(通过该名称有意义)。但是,如果您将其导入新的DOMNode,则可以将特定的DOMDocument 设为:
$doc = new DOMDocument();
$node = $doc->importNode($node);
然后,您可以执行DOM提供的任何DOM操作,例如例如,添加文本节点:
$textNode = $doc->createTextNode('New Child TextNode added :)');
$node->appendChild($textNode);
如果您更喜欢使用SimpleXML进行操作,您也可以在将导入DOMDocument之后将节点导入SimpleXML :
$xml = simplexml_import_dom($node);
上面的示例使用我的xmlreader-iterators,只为XMLReader提供了一些更好的界面:
$reader = new XMLReader();
$reader->open($xmlFile);
$elements = new XMLElementIterator($reader, 'data');
foreach ($elements as $element)
{
$node = $element->expand();
$doc = new DOMDocument();
$node = $doc->importNode($node, true);
$node->appendChild($doc->createTextNode('New Child TextNode added :)'));
echo $doc->saveXML($node), "\n";
}
使用以下XML文档:
上面的小示例代码产生以下输出:
New Child TextNode added :)
New Child TextNode added :)
New Child TextNode added :)
New Child TextNode added :)