3 回答

TA貢獻1804條經驗 獲得超3個贊
<?php
$xml = new SimpleXMLElement('<a><b/></a>');
unset($xml->b);
echo $xml->asxml();
由于調用了__unset()方法(或模塊代碼中的等效方法),因此可以按預期工作(從文檔中刪除<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>
- 3 回答
- 0 關注
- 348 瀏覽
添加回答
舉報