Cara Menggunakan HTML Tree Builder di Python
Konstruksi pohon dalam Aspose.HTML FOSS untuk Python menerapkan algoritma standar — mode penyisipan, pemulihan kesalahan, deteksi keanehan, dan konten asing — dengan parse_html() sebagai titik masuk satu panggilan dan TreeBuilder yang mengekspos mekanisme. Panduan ini menjelaskan alur kerja dan perilakunya, menggunakan pip untuk instalasi.
Panduan Langkah demi Langkah
Langkah 1: Instal Paket
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Langkah 2: Impor Fungsi yang Diperlukan
from aspose_html.tree import parse_htmlLangkah 3: Parse Markup menjadi Pohon
parse_html() menjalankan tokenizer dan pembangun pohon bersama-sama, mengembalikan pohon yang selesai; parse_fragment() menerapkan algoritma fragmen terhadap elemen konteks. Keduanya menggerakkan TreeBuilder.run() secara internal.
Langkah 4: Pahami Status Konstruksi
InsertionMode memodelkan mesin mode algoritma, dengan StackOfOpenElements dan TemplateInsertionModeStack melacak elemen terbuka dan mode templat tepat seperti yang dijelaskan dalam spesifikasi.
Langkah 5: Andalkan Pemulihan Kesalahan Standar
Perbaikan elemen format yang tidak berurutan melalui run_adoption_agency_algorithm() dengan pelacakan ActiveFormattingList; konten tabel yang salah tempat memiliki foster-parent melalui get_foster_parent_location(); doctype diklasifikasikan melalui determine_quirks_mode(); atribut SVG/MathML disesuaikan melalui fungsi adjust_*_attributes().
Masalah Umum dan Solusinya
Markup yang buruk menghasilkan pohon alih-alih kesalahan. Sesuai desain — algoritma standar mendefinisikan pemulihan untuk setiap kasus kesalahan.
Tag pemformatan muncul duplikat. Algoritma agensi adopsi merekonstruksi konteks pemformatan setelah penyusunan yang salah; outputnya cocok dengan perilaku peramban.
Konten tabel dipindahkan di luar tabelnya. Foster parenting memindahkan konten yang salah tempat; perbaiki nesting di markup sumber.
Pertanyaan yang Sering Diajukan
Kapan saya harus menggunakan TreeBuilder secara langsung alih-alih parse_html?
Hanya ketika Anda membutuhkan introspeksi keadaan konstruksi; parse_html() mencakup parsing normal.
Bagaimana mode quirks ditentukan?
determine_quirks_mode() mengklasifikasikan dokumen berdasarkan doctype-nya.
Apakah builder menangani SVG dan MathML?
Ya — konten asing melewati penyesuaian atribut dengan deteksi titik integrasi standar.