我试图使用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 ... –