2010-08-30 12 views
14

ich alle Kinder aus einer XML-Knoten mit PHP DOM, entfernen möchten, gibt es einen Unterschied zwischen:Entfernen Sie alle Kinder aus einer XML-Knoten PHP DOM

A)

while ($parentNode->hasChildNodes()){ 
    $parentNode->removeChild($parentNode->childNodes->item(0)); 
} 

UND

B)

Ich bevorzuge die zweite, scheint, als ob ich das gleiche Ergebnis bekomme, aber ich bin mir nicht sicher.

Danke, Carlos

+0

ziehe ich die ersten, da ohne kompliziert zu wissen, wie der DOM funktioniert es leicht zu sehen, was los ist (und als solche, es ist besser lesbar IMHO) ... – ircmaxell

+0

Ja, du bist Richtig, die Sache ist, ich liebe One-Line-Code :). Wie auch immer, gibt es einen Unterschied? –

+0

mit Version B verursacht einige seltsame Zeichen in meinem Fall, wenn der Knoten mehr als ein Kind hat. Kein Unterschied mit einem einzelnen Kind obwohl – Xaver

Antwort

4

removeChild() ist mehr "richtige" Art und Weise, Dinge zu tun. Während Sie den Inhalt dieses Knotens auf "" setzen können, und dies wird den gewünschten Effekt erhalten, ist der Aufruf viel offensichtlicher, was vor sich geht. Es wäre jedoch meine Annahme, dass nodeValue() in einem winzigen Grad etwas effizienter ist.

22

Etwas fester:

while ($parentNode->hasChildNodes()) { 
    $parentNode->removeChild($parentNode->firstChild); 
    } 
Verwandte Themen