脚本宝典收集整理的这篇文章主要介绍了PHP SimpleXML – 删除xpath节点,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$XMl = simplexML_load_file($filename); $data = $xml->xpath('//ITems/info[item_id="' . $item_id . '"]'); $parent = $data[0]->xpath("parent::*"); unset($parent);
所以,它找到项目ID,没有问题 – 但是未设置不会摆脱这个< items>节点.所有我想要做的是删除< items> …< / items>对于这个产品.显然,有< items> xml文件中的节点,因此它将无法执行unset($xml-> data->项目),因为这将删除所有内容.
任何想法非常感激:-)
<?PHP $xml = new SimpleXMLElement('<a><b/></a>'); unset($xml->b); echo $xml->asxml();
因为__unset() method(或模块代码中的等效项)被调用,所以这个工作原理(从文档中删除< b />元素).
但是当你调用unset($parent);它仅删除存储在$parent中的对象引用,但它不会影响对象本身或存储在$xml中的文档.
我会恢复到DOMDocument这个.
<?PHP $doc = new DOMDOcument; $doc->loadxml('<foo> <items> <info> <item_id>123</item_id> </info> </items> <items> <info> <item_id>456</item_id> </info> </items> <items> <info> <item_id>789</item_id> </info> </items> </foo>'); $item_id = 456; $xpath = new DOMXpath($doc); foreach($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) { $node->parentNode->removeChild($node); } echo $doc->savexml();
版画
<?xml version="1.0"?> <foo> <items> <info> <item_id>123</item_id> </info> </items> <items> <info> <item_id>789</item_id> </info> </items> </foo>
以上是脚本宝典为你收集整理的PHP SimpleXML – 删除xpath节点全部内容,希望文章能够帮你解决PHP SimpleXML – 删除xpath节点所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。