Python'de DOM ile Nasıl Çalışılır

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-foss

Adım 2: Gerekli Sınıfları İçe Aktar

from aspose_html.dom import Document

Adı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.

Ayrıca Bakınız

 Türkçe