2010-08-30 14 views
14

मैं PHP डोम का उपयोग कर एक एक्सएमएल नोड से सभी बच्चों को निकालना चाहते हैं, से सभी बच्चों को निकालें, वहाँ के बीच कोई अंतर है बी)एक एक्सएमएल नोड पीएचपी डोम

$node->nodeValue = ""; 

मैं, दूसरा एक पसंद करते हैं जैसे मैं एक ही परिणाम हो रही है लेकिन मुझे यकीन नहीं कर रहा हूँ लगता है।

धन्यवाद, कार्लोस

+0

मैं पहली पसंद करते हैं, के बाद से जटिलता जानते हुए भी कैसे डोम काम करता है बिना यह क्या हो रहा है (और इस तरह के रूप में इसे और अधिक पठनीय IMHO है) को देखने के लिए ... – ircmaxell

+0

हाँ, आप कर रहे हैं आसान है ठीक है, बात यह है कि मुझे एक-लाइन-कोड पसंद है :)। वैसे भी, क्या कोई अंतर है? –

+0

संस्करण बी का उपयोग करते हुए मेरे मामले में कुछ अजीब पात्रों का कारण बनता है यदि नोड में एक से अधिक बच्चे हैं। हालांकि एक बच्चे के साथ कोई फर्क नहीं पड़ता – Xaver

उत्तर

4

removeChild() काम करने के लिए और अधिक "उचित" तरीका है। जबकि आप उस नोड की सामग्री "" पर सेट कर सकते हैं और यह वांछित प्रभाव प्राप्त करेगा, removeChild() पर कॉल करने के बारे में और अधिक स्पष्ट है कि क्या हो रहा है। हालांकि, यह मेरी धारणा होगी कि, एक छोटे से स्तर में, nodeValue() थोड़ा अधिक कुशल है।

22

थोड़ा तंग:

while ($parentNode->hasChildNodes()) { 
    $parentNode->removeChild($parentNode->firstChild); 
    } 
संबंधित मुद्दे