Bekerja dengan DOM

Bekerja dengan DOM

Lapisan DOM memodelkan halaman HTML sebagai pohon node bertipe. Document adalah titik masuk dan pabrik node; Element dan Node menangani manipulasi dan penelusuran API.


Membuat Node

Document.create_element(), create_text_node(), create_comment(), dan create_document_fragment() menghasilkan node; append_child() melampirkannya:

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(), dan remove_attribute() mengelola atribut markup; Attr dan NamedNodeMap memperlihatkannya sebagai objek:

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)

Operasi Pohon

Node menyediakan toolkit struktural: insert_before(), remove_child(), replace_child(), clone_node(), dan contains(), serta child_nodes, parent_node, dan first_child accessors dan text_content untuk teks subtree. get_root_node() dan has_child_nodes() menjawab pertanyaan struktural secara langsung.

Pencarian dan Penelusuran

Document.get_element_by_id() mengambil elemen berdasarkan id. NodeList dan HTMLCollection menyimpan set hasil; NodeIterator dan TreeWalker (dengan NodeFilter) menelusuri subpohon dalam urutan dokumen.

Mengamati Mutasi

MutationObserver mencatat perubahan pohon sebagai entri MutationRecord, mencerminkan observer pattern standar untuk merespons edit struktural.


Tips dan Praktik Terbaik

  • Buat setiap node melalui Document yang memiliki — node berskala dokumen; gunakan Document.import_node() atau adopt_node() untuk memindahkannya antar dokumen
  • Lebih baik gunakan text_content untuk teks seluruh-subpohon daripada mengatur node Text secara manual
  • Gunakan DocumentFragment untuk menyusun batch node sebelum satu append_child()
  • Periksa has_attribute() sebelum get_attribute() ketika atribut yang hilang bermakna

Masalah Umum

MasalahPenyebabPerbaikan
Node muncul di dokumen yang salahNode dibuat oleh Document yang berbedaPindahkan dengan import_node() atau adopt_node() terlebih dahulu
Pencarian atribut tidak mengembalikan apa punAtribut tidak pernah disetel pada elemenPenjaga dengan has_attribute()
Teks subtree kosongMembaca text_content sebelum anak dilampirkanLampirkan anak, kemudian baca

FAQ

Kelas mana yang membuat elemen baru?

Document — metode create_element()-nya adalah pabrik untuk elemen, dengan pabrik saudara untuk teks, komentar, dan fragmen.

Bagaimana cara memindahkan subtree antara dua dokumen?

Gunakan Document.import_node() untuk menyalin atau adopt_node() untuk mentransfer, lalu lampirkan dengan append_child().

Apakah ada observer API untuk perubahan pohon?

Ya — MutationObserver menyediakan batch MutationRecord yang menggambarkan perubahan struktural dan atribut.


Ringkasan API Reference

Kelas/MetodeDeskripsi
Document.create_elementBuat node elemen
Document.get_element_by_idCari elemen berdasarkan id
Element.set_attributeAtur atribut markup
Node.insert_beforeSisipkan node sebelum anak referensi
Node.clone_nodeSalin node atau subtree
MutationObserverAmati mutasi pohon
TreeWalkerPenelusuran urutan dokumen yang difilter

Lihat Juga

 Bahasa Indonesia