Python'de DOM ile Nasıl Çalışılır
Aspose.HTML Python modelleri için FOSS, HTML standart tabanlı bir DOM olarak: Document düğümler oluşturur, Element nitelikleri yönetir ve Node ağaç işlemlerini sağlar. Bu kılavuz, pip kullanarak kurulum yapar ve küçük bir ağaç oluşturup yapısını geri okur.
Adım Adım Kılavuz
Adım 1: Paketi Yükle
Paketi yükleyin:
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Ardından paket meta verilerini doğrulayın:
pip show aspose-html-fossAdım 2: Gerekli Sınıfları İçe Aktar
from aspose_html.dom import DocumentAdım 3: Bir Belge ve Bir Öğe Oluştur
Document node fabrikasıdır; create_element() append_child() ile eklediğiniz yeni bir öğeyi döndürür:
doc = Document()
el = doc.create_element("div")
doc.append_child(el)Adım 4: Öznitelikleri Ayarla
set_attribute() işaretleme özniteliklerini yazar; sınıflar ve kimlikler daha sonraki CSS eşleşmesini yönlendirir:
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")Adım 5: Yapıyı Geri Oku
get_element_by_id() öğeyi alır, get_attribute() özniteliklerini döndürür ve has_child_nodes() yapıyı onaylar:
found = doc.get_element_by_id("bar")
print(found.get_attribute("class"))
print(doc.has_child_nodes())Yaygın Sorunlar ve Çözümler
id ile arama hiçbir şey döndürmez. Elemanın id özniteliği önce ayarlanmalıdır get_element_by_id() çağrıldığında, elemanın belge ağacına eklenmiş olması gerekir.
Öznitelik okuma işlemleri beklenmedik değerler döndürür. get_attribute() son ayarlanan değerle döner set_attribute(); attribute adlarında yazım hatalarını kontrol edin — bunlar düz metinlerdir.
Başka bir belgeden oluşturulan düğümler hatalı davranır. Düğümler belge kapsamındadır. Aynı yol üzerinden oluşturun Document, ya da şu şekilde aktarın import_node()/adopt_node().
Sıkça Sorulan Sorular
Document hangi düğüm türlerini oluşturabilir?
Elemanlar, metin düğümleri, yorumlar ve belge parçacıkları — create_element(), create_text_node(), create_comment() ve create_document_fragment() aracılığıyla.
Mevcut düğümleri nasıl taşıyabilir veya kaldırabilirim?
Şu Node işlemlerini kullanın: insert_before(), remove_child(), replace_child() ve clone_node().
Ağaçları manuel olarak oluşturmaktansa mevcut işaretlemeyi ayrıştırabilir miyim?
Evet — HTMLDocument.parse() for pages and HTMLDocument.parse_fragment() for snippets aynı türde bir ağaç üretir.