DOM के साथ काम करना

DOM के साथ काम करना

DOM के साथ काम करना

DOM लेयर HTML पेज को टाइप्ड नोड्स के ट्री के रूप में मॉडल करती है। Document प्रवेश बिंदु और नोड फैक्टरी है; Element और Node API का हेरफेर और ट्रैवर्सल संभालते हैं।


नोड्स बनाना

Document.create_element(), create_text_node(), create_comment(), और create_document_fragment() नोड्स उत्पन्न करते हैं; append_child() उन्हें संलग्न करता है:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
doc.append_child(el)

Attributes

Element.set_attribute(), get_attribute(), has_attribute(), और remove_attribute() मार्कअप एट्रिब्यूट्स को प्रबंधित करते हैं; Attr और NamedNodeMap उन्हें ऑब्जेक्ट्स के रूप में उजागर करते हैं:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)

ट्री ऑपरेशन्स

Node संरचनात्मक टूलकिट प्रदान करता है: insert_before(), remove_child(), replace_child(), clone_node(), और contains(), साथ ही child_nodes, parent_node, और first_child एक्सेसर और text_content सबट्री टेक्स्ट के लिए। get_root_node() और has_child_nodes() सीधे संरचनात्मक प्रश्नों का उत्तर देते हैं।

लुकअप और ट्रैवर्सल

Document.get_element_by_id() id द्वारा तत्वों को पुनः प्राप्त करता है। NodeList और HTMLCollection परिणाम सेट को रखते हैं; NodeIterator और TreeWalker (NodeFilter के साथ) दस्तावेज़ क्रम में सबट्रीज़ को चलाते हैं।

म्यूटेशन्स का निरीक्षण

MutationObserver ट्री में बदलावों को MutationRecord एंट्रीज़ के रूप में रिकॉर्ड करता है, जो संरचनात्मक संपादन पर प्रतिक्रिया देने के लिए मानक ऑब्जर्वर पैटर्न को प्रतिबिंबित करता है।


सुझाव और सर्वोत्तम प्रथाएँ

  • प्रत्येक नोड को मालिक Document के माध्यम से बनाएँ — नोड्स दस्तावेज़-स्कोप्ड होते हैं; उन्हें दस्तावेज़ों के बीच ले जाने के लिए Document.import_node() या adopt_node() का उपयोग करें।
  • पूरे सबट्री टेक्स्ट के लिए मैनुअल Text नोड जगलिंग की बजाय text_content को प्राथमिकता दें।
  • DocumentFragment का उपयोग नोड्स के बैच को एकल append_child() से पहले असेंबल करने के लिए करें
  • जब कोई लापता विशेषता महत्वपूर्ण हो, तो get_attribute() से पहले has_attribute() जांचें

सामान्य समस्याएँ

समस्याकारणसमाधान
नोड गलत दस्तावेज़ में दिखाई देता हैनोड किसी अलग Document द्वारा बनाया गया हैपहले इसे import_node() या adopt_node() के साथ स्थानांतरित करें
एट्रिब्यूट लुकअप कुछ भी नहीं लौटाताएट्रिब्यूट तत्व पर कभी सेट नहीं किया गयागार्ड के साथ has_attribute()
सबट्री टेक्स्ट खाली हैबच्चों जुड़े होने से पहले text_content पढ़नाबच्चों को संलग्न करें, फिर पढ़ें

FAQ

कौन सा वर्ग नए तत्व बनाता है?

Document — इसका create_element() मेथड तत्वों का फ़ैक्टरी है, तथा टेक्स्ट, कमेंट्स और फ्रैगमेंट्स के लिए सहायक फ़ैक्टरी भी हैं।

मैं दो दस्तावेज़ों के बीच एक सबट्री को कैसे स्थानांतरित करूँ?

कॉपी करने के लिए Document.import_node() का उपयोग करें या स्थानांतरित करने के लिए adopt_node(), फिर append_child() से संलग्न करें।

क्या ट्री परिवर्तनों के लिए कोई API निरीक्षक है?

हाँ — MutationObserver संरचनात्मक और गुणात्मक परिवर्तनों का वर्णन करने वाले MutationRecord बैच प्रदान करता है।


API Reference सारांश

क्लास/मेथडविवरण
Document.create_elementएक एलिमेंट नोड बनाएं
Document.get_element_by_idid द्वारा एक तत्व खोजें
Element.set_attributeएक मार्कअप एट्रिब्यूट सेट करें
Node.insert_beforeसंदर्भ बाल से पहले एक नोड डालें
Node.clone_nodeएक नोड या सबट्री की कॉपी करें
MutationObserverट्री में परिवर्तन देखें
TreeWalkerफ़िल्टर किया गया दस्तावेज़-क्रम ट्रैवर्सल

यह भी देखें

 हिन्दी