HTML Tree Builder'ı Python'de Nasıl Kullanılır
Aspose.HTML FOSS içinde Python için ağaç oluşturma, standart algoritmayı — ekleme modları, hata kurtarma, tuhaflık tespiti ve yabancı içerik — parse_html() tek çağrı giriş noktası ve TreeBuilder makineyi ortaya çıkararak uygular. Bu rehber, pip kullanarak kurulum yaparken, pipeline’ı ve davranışlarını açıklar.
Adım Adım Kılavuz
Adım 1: Paketi Yükle
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Adım 2: Gerekli Fonksiyonları İçe Aktar
from aspose_html.tree import parse_htmlAdım 3: İşaretlemeyi Bir Ağaca Ayrıştır
parse_html() tokenleyiciyi ve ağaç oluşturucuyu birlikte çalıştırır, tamamlanmış bir ağaç döndürür; parse_fragment() bir bağlam öğesine karşı fragment algoritmasını uygular. İkisi de dahili olarak TreeBuilder.run()‘yi yönlendirir.
Adım 4: Oluşturma Durumunu Anlamak
InsertionMode, algoritmanın mod makinesini modeller, StackOfOpenElements ve TemplateInsertionModeStack ise açık öğeleri ve şablon modlarını spesifikasyonun açıkladığı şekilde tam olarak izler.
Adım 5: Standartların Hata Kurtarmasına Güven
Yanlış iç içe geçmiş biçimleme öğeleri run_adoption_agency_algorithm() aracılığıyla, ActiveFormattingList izleme ile onarılır; yanlış yerleştirilmiş tablo içeriği get_foster_parent_location() aracılığıyla ebeveyn öğelere yönlendirilir; doctype’lar determine_quirks_mode() üzerinden sınıflandırılır; SVG/MathML öznitelikleri adjust_*_attributes() fonksiyonlarıyla ayarlanır.
Ortak Sorunlar ve Çözümler
Kötü işaretleme bir hata yerine bir ağaç üretir. Tasarım gereği — standartlar algoritması her hata durumu için kurtarma tanımlar.
Biçimlendirme etiketleri yinelenmiş gibi görünüyor. Kabul ajansı algoritması, hatalı iç içe geçmeden sonra biçimlendirme bağlamını yeniden oluşturur; çıktı tarayıcı davranışıyla eşleşir.
Tablo içeriği tablonun dışına taşındı. Foster parenting, yanlış yerleştirilmiş içeriği yeniden konumlandırdı; kaynak işaretlemedeki iç içe yerleşimi düzeltin.
Sıkça Sorulan Sorular
Ne zaman TreeBuilder öğesini doğrudan, parse_html yerine kullanmalıyım?
Yalnızca yapı durumunun iç gözlemesi gerektiğinde; parse_html() normal ayrıştırmayı kapsar.
Quirks modu nasıl belirlenir?
determine_quirks_mode() belgeyi doctype’ından sınıflandırır.
Builder SVG ve MathML öğelerini işleyebiliyor mu?
Evet — yabancı içerik, öznitelik ayarlayıcıları aracılığıyla standart entegrasyon noktası tespiti ile yönlendirilir.