"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP के DOMDocument का उपयोग करके नोड्स निकालते समय मैं HTML टैग कैसे संरक्षित कर सकता हूं?

PHP के DOMDocument का उपयोग करके नोड्स निकालते समय मैं HTML टैग कैसे संरक्षित कर सकता हूं?

2024-12-22 को प्रकाशित
ब्राउज़ करें:523

How Can I Preserve HTML Tags When Extracting Nodes Using PHP's DOMDocument?

DOMDocument का उपयोग करके HTML नोड्स निकालने में समस्याएं

DOMDocument, एक PHP वर्ग, पार्सिंग के लिए एक सुविधाजनक दृष्टिकोण प्रदान करता है और HTML दस्तावेज़ों में हेरफेर करना। हालाँकि, सामग्री निकालते समय HTML टैग्स को बनाए रखने का प्रयास करते समय, उपयोगकर्ताओं को कठिनाइयों का सामना करना पड़ सकता है। यह लेख DOM की अंतर्निहित अवधारणा पर प्रकाश डालता है और इस चुनौती का समाधान करने के लिए समाधान प्रस्तावित करता है। प्रत्येक नोड में चाइल्ड नोड्स हो सकते हैं, जो एक जटिल संरचना बनाते हैं। यह पहचानना महत्वपूर्ण है कि HTML तत्व, उनकी विशेषताओं और पाठ सामग्री के साथ, सभी DOMDocument के भीतर नोड्स के रूप में दर्शाए जाते हैं।

टैग संरक्षण समस्या का समाधान

प्रदान किया गया कोड "showContent" आईडी के साथ DIV नोड को सफलतापूर्वक प्राप्त करता है। हालाँकि, यह HTML टैग्स को छोड़कर, केवल DIV के भीतर पाठ्य सामग्री को पुनः प्राप्त करता है। ऐसा इसलिए है क्योंकि कोड

$tag->nodeValue

का उपयोग करता है, जो वास्तविक नोड्स के बजाय केवल टेक्स्ट को निकालता है।

समाधान: ट्रैवर्सिंग नोड्स

HTML नोड्स को संरक्षित करने के लिए, आपको अपने लक्ष्य नोड के चाइल्ड नोड्स को पार करना होगा। नीचे दिया गया कोड इस दृष्टिकोण को प्रदर्शित करता है:

$dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = नया DOMXPath($dom); $टैग = $xpath->query('.//div[@id='showContent']'); foreach ($टैग के रूप में टैग) { इको $dom->saveXML($टैग); प्रतिध्वनि '
'; }

HTML से विशिष्ट जानकारी पुनर्प्राप्त करना

$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);

$tags = $xpath->query('.//div[@id="showContent"]');
foreach ($tags as $tag) {
    echo $dom->saveXML($tag);
    echo '
'; }

foreach ($div->getElementsByTagName('a') as $link) { इको $dom->saveXML($लिंक); ) ://www.php.net/manual/en/class.domdocument.php)[प्रश्न और स्टैक ओवरफ्लो में DOMDocument पर उत्तर](https://stackoverflow.com/search?q=user:208809 DOM)

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3