我試圖使用DOM文檔在PHP中刪除多個元素,但它不工作,因爲我想讓它工作。PHP使用DOM刪除多個元素
<iPhone>
<enAttentePush>
<UDID>dd6fc8032f0bf4c4b3a9c60f523900c9ad463b620a83b6473eda9a12b2c9d47f</UDID>
<Message>someDataHere</Message>
</enAttentePush>
<enAttentePush>
<UDID>dd6fc8032f0bf4c4b3a9c60f523900c9ad463b620a83b6473eda9a12b2c9d47f</UDID>
<Message>someDataHere</Message>
</enAttentePush>
</iPhone>
我想循環進入我的xml文檔,然後擦除所有元素以獲得空文件。
這是我做的PHP:
$doc = new DOMDocument;
$doc->load('$myFile');
$domNodeList = $doc->getElementsByTagName('enAttentePush');
$arraySeen = array();
$arrayBug = array();
foreach ($domNodeList as $domElement)
{
//echo('loop/');
$tempArray = array();
$aps = $domElement->getElementsByTagName('Message')->item(0)->nodeValue;
$udid = $domElement->getElementsByTagName('UDID')->item(0)->nodeValue;
if (!in_array($udid, $arraySeen))
{
$tempArray[]=$aps;
$tempArray[]=$udid;
$arrayBug[]=$tempArray;
$arraySeen[]=$udid;
}
echo("-- removed -- ");
$domElement->parentNode->removeChild($domElement);
}
只刪除一個節點,最後一個一般。
我該怎麼做循環想我的節點,並刪除它,每次我看到一個節點?
非常感謝。
如果我依稀記得,刪除一個節點攪得節點查詢,這意味着你必須重新查詢DOM直到所有節點都被刪除。因此,而不是'的foreach(){}'你應該考慮使用'而(){}'。 – pp19dd
好吧,我不知道如何使while循環使用DOM ... –