php的xmlwriter扩展,php - PHP:如何用XMLWriter替换现有的XML节点 - 堆栈内存溢出

默认为扩展节点(您的问题中遗漏了)

$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 :)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值