Lucrul cu DOM-ul

Lucrul cu DOM

Stratul DOM modelează o pagină HTML ca un arbore de noduri tipizate. Document este punctul de intrare și fabrica de noduri; Element și Node realizează manipularea și traversarea API.


Crearea nodurilor

Document.create_element(), create_text_node(), create_comment() și create_document_fragment() produc noduri; append_child() le atașează:

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() și remove_attribute() gestionează atributele de marcare; Attr și NamedNodeMap le expun ca obiecte:

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)

Operații pe arbore

Node furnizează trusa structurală: insert_before(), remove_child(), replace_child(), clone_node() și contains(), plus accesoriile child_nodes, parent_node și first_child și text_content pentru textul subarborelui. get_root_node() și has_child_nodes() răspund direct la întrebări structurale.

Căutare și Traversare

Document.get_element_by_id() recuperează elementele după id. NodeList și HTMLCollection dețin seturi de rezultate; NodeIterator și TreeWalker (cu NodeFilter) parcurg subarborii în ordine de document.

Observarea mutațiilor

MutationObserver înregistrează modificările arborelui ca intrări MutationRecord, oglindind modelul standard de observator pentru reacționarea la editări structurale.


Sfaturi și cele mai bune practici

  • Creează fiecare nod prin Document deținator — nodurile au domeniu la nivel de document; folosește Document.import_node() sau adopt_node() pentru a le muta între documente
  • Preferă text_content pentru textul întregului subarbore în loc de manipularea manuală a nodurilor Text
  • Folosește DocumentFragment pentru a aduna grupuri de noduri înainte de un singur append_child()
  • Verifică has_attribute() înainte de get_attribute() când un atribut lipsă este semnificativ

Probleme comune

ProblemăCauzăRemediere
Nodul apare în documentul greșitNod creat de un alt DocumentMută-l cu import_node() sau adopt_node() mai întâi
Căutarea atributului nu returnează nimicAtributul nu a fost niciodată setat pe elementProtecție cu has_attribute()
Textul subarborelui este golCitirea text_content înainte de atașarea copiilorAtașează copiii, apoi citește

FAQ

Ce clasă creează elemente noi?

Document — metoda sa create_element() este fabrica pentru elemente, cu fabrici înrudite pentru text, comentarii și fragmente.

Cum pot muta un subarbore între două documente?

Folosește Document.import_node() pentru a copia sau adopt_node() pentru a transfera, apoi atașează cu append_child().

Există un observator API pentru modificările arborelui?

Da — MutationObserver furnizează loturi MutationRecord care descriu modificări structurale și de atribut.


API Reference Rezumat

Clasă/MetodăDescriere:
Document.create_elementCreează un nod de element
Document.get_element_by_idCaută un element după ID
Element.set_attributeSetează un atribut de markup
Node.insert_beforeInserează un nod înainte de un copil de referință
Node.clone_nodeCopiază un nod sau un subarbore
MutationObserverObservă mutațiile arborelui
TreeWalkerTraversare filtrată în ordine de document

Vezi și:

 Română