DOM ile Çalışma
DOM ile Çalışma
DOM katmanı bir HTML sayfasını türlendirilmiş düğümlerin ağacı olarak modeller. Document giriş noktası ve düğüm fabrikasıdır; Element ve Node manipülasyon ve gezinme API görevini üstlenir.
Düğümler Oluşturma
Document.create_element(), create_text_node(), create_comment() ve create_document_fragment() düğümler üretir; append_child() onları ekler:
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() ve remove_attribute() işaretleme özniteliklerini yönetir; Attr ve NamedNodeMap bunları nesneler olarak ortaya koyar:
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)Ağaç İşlemleri
Node yapısal araç setini sağlar: insert_before(), remove_child(), replace_child(), clone_node() ve contains(), ayrıca child_nodes, parent_node ve first_child erişicileri ve alt ağaç metni için text_content. get_root_node() ve has_child_nodes() yapısal soruları doğrudan yanıtlar.
Arama ve Gezinme
Document.get_element_by_id() öğeleri kimliğe göre alır. NodeList ve HTMLCollection sonuç kümelerini tutar; NodeIterator ve TreeWalker (NodeFilter ile) belge sırasına göre alt ağaçları dolaşır.
Değişiklikleri Gözlemleme
MutationObserver ağaç değişikliklerini MutationRecord girdileri olarak kaydeder, yapısal düzenlemelere yanıt vermek için standart gözlemci desenini yansıtır.
İpuçları ve En İyi Uygulamalar
- Her düğümü sahibi
Documentaracılığıyla oluşturun — düğümler belge kapsamındadır; onları belgeler arasında taşımak içinDocument.import_node()veyaadopt_node()kullanın - Manuel
Textdüğüm oynatmasından ziyade bütün alt ağaç metni içintext_contenttercih edin - Tek bir
append_child()öncesinde düğüm topluluklarını birleştirmek içinDocumentFragmentkullanın - Eksik bir öznitelik anlam taşıdığında
has_attribute()‘ıget_attribute()‘den önce kontrol edin
Yaygın Sorunlar
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Düğüm yanlış belgede görünüyor | Düğüm farklı bir Document tarafından oluşturuldu | Önce import_node() veya adopt_node() ile taşıyın |
| Öznitelik araması hiçbir şey döndürmüyor | Öznitelik öğeye hiç ayarlanmamış | Şu has_attribute() ile koru |
| Alt ağaç metni boş | Çocuklar eklenmeden önce text_content okunuyor | Çocukları ekle, ardından oku |
FAQ
Hangi sınıf yeni öğeler oluşturur?
Document — onun create_element() metodu öğeler için fabrikadır, metin, yorumlar ve parçalar için kardeş fabrikalarla birlikte.
İki belge arasında bir alt ağacı nasıl taşıyabilirim?
Kopyalamak için Document.import_node(), aktarmak için adopt_node() kullanın, ardından append_child() ile ekleyin.
Ağaç değişiklikleri için bir gözlemci API var mı?
Evet — MutationObserver, yapısal ve öznitelik değişikliklerini tanımlayan MutationRecord batch’lerini sağlar.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Document.create_element | Bir eleman düğümü oluştur |
Document.get_element_by_id | Kimliğe göre bir öğeyi ara |
Element.set_attribute | Bir işaretleme özniteliği ayarlayın |
Node.insert_before | Referans çocuğunun önüne bir düğüm ekle |
Node.clone_node | Bir düğümü ya da alt ağacı kopyala |
MutationObserver | Ağaç mutasyonlarını gözlemle |
TreeWalker | Filtrelenmiş belge-sırası dolaşımı |