SimpleXML: एक XPath नोड को हटाना
इस लेख में, हम यह पता लगाएंगे कि XML दस्तावेज़ से पैरेंट नोड को प्रभावी ढंग से कैसे हटाया जाए SimpleXML और XPath.
SimpleXML को समझना सीमाएं
प्रदान किया गया कोड XPath के माध्यम से ढूंढने के बाद पैरेंट नोड को हटाने के लिए SimpleXML का उपयोग करने का प्रयास करता है। हालाँकि, SimpleXML का unset() फ़ंक्शन केवल एक वेरिएबल में संग्रहीत ऑब्जेक्ट संदर्भ को हटाता है, नोड को नहीं। DOMDocument का उपयोग करना, जो XML दस्तावेज़ों की संरचना में अधिक सीधे हेरफेर करता है।
समाधान का उपयोग करना DOMDocument
एक DOMDocument ऑब्जेक्ट बनाएं और उसमें XML फ़ाइल लोड करें।क्वेरी करने के लिए XPath का उपयोग करें और लक्ष्य नोड का चयन करें।
पैरेंट को हटाएं नोड का उपयोग करना $node->parentNode->removeChild($node).यह कोड आइटम_आईडी 456 वाले उत्पाद के लिए नोड को हटा देता है, जिसके परिणामस्वरूप उस नोड के बिना एक संशोधित XML दस्तावेज़ बन जाता है।
$doc = new DOMDocument;
$doc->loadXML(...);
$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();
DOMDocument नोड्स को सीधे हटाने सहित XML दस्तावेज़ों के अधिक मजबूत हेरफेर की अनुमति देता है। जबकि SimpleXML बुनियादी XPath प्रश्नों के लिए सुविधाजनक हो सकता है, DOMDocument अधिक जटिल XML हेरफेर कार्यों के लिए अधिक उपयुक्त विकल्प है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3