lxml adalah modul Python canggih, kuat, bebas dan unik yang mengikat libxml2 dan libxslt perpustakaan, memungkinkan pengembang Python untuk bekerja dengan baik XML dan HTML file insider mereka Python code.An pengolahan XML librarylxml adalah XML (Extensible Markup Language ) pengolahan perpustakaan yang ditulis dalam bahasa pemrograman Python, yang dirancang khusus untuk mengikuti API spesifikasi ElementTree sebanyak mungkin.
Hal ini dapat memperpanjang ElementTree API untuk mengekspos fungsi spesifik dari libxslt dan libxml2 perpustakaan, seperti Relax NG (Next-Generation), XPath, XML Schema, c14n, XSLT (eXtensible Stylesheet Language), etc.Use lxml untuk memanggil kode Python dari stylesheetsDevelopers XSLT akan dapat menggunakan program lxml untuk memanggil kode Python dari stylesheet XSLT dan XPath ekspresi melalui fungsi ekstensi. Berbagai macam tutorial yang tersedia di proyek & rsquo; s homepage (lihat link di bagian akhir artikel).
Perangkat lunak open source dengan desain dan menggabungkan kelengkapan fitur dan kecepatan perpustakaan tersebut dengan kesederhanaan Python & rsquo; s API (Application Programming Interface) .Getting dimulai dengan lxmlIt cukup mudah untuk menginstal lxml pada distribusi GNU / Linux menggunakan Sumber arsip didistribusikan pada Softoware dan proyek & rsquo; s website resmi. Cukup download paket source, simpan di direktori Home Anda, ekstrak, buka aplikasi Terminal dan arahkan ke lokasi file arsip diekstrak (misalnya cd /home/softoware/lxml-3.4.1).
Jalankan & lsquo; & rsquo membuat; perintah untuk mengkompilasi program, yang akan memakan waktu sekitar 1-2 menit pada komputer modern. Setelah kompilasi berhasil, jalankan & lsquo; & rsquo make install; perintah sebagai root atau & lsquo; sudo make install & rsquo; perintah sebagai pengguna istimewa untuk menginstal wide.Supports sistem lxml GNU / Linux dan Microsoft Windows operasi software systemsThe secara resmi didukung pada GNU / Linux dan sistem operasi Microsoft Windows. Ini telah berhasil diuji pada 32-bit dan 64-bit komputer
Apa yang baru dalam rilis ini:.
- Fitur menambahkan:
- New Generator htmlfile HTML untuk menemani tambahan xmlfile serialisasi API. Patch oleh Burak Arslan.
- Bugs tetap:
- lxml.sax.ElementTreeContentHandler tidak menginisialisasinya superclass-nya.
Apa yang baru dalam versi 3.3.1:
- Bugs tetap:
- LP # 1014290: dokumen HTML diurai dengan parser.feed () gagal menemukan unsur-unsur dalam tag iterasi .
- LP # 1273709: Bangunan di PyPy gagal karena hilang dukungan untuk PyUnicode_Compare () dan PyByteArray _ * () di PyPy C-API .
- LP # 1274413: Kompilasi di MSVC gagal karena hilang & quot; stdint.h & quot; file header standar.
- LP # 1274118: iterparse () gagal untuk mengurai BOM diawali file .
Apa yang baru di versi 3.0 Alpha 2:
- Fitur tambahan:
- .iter () metode elemen sekarang menerima tag argumen seperti & quot; {} * Nama & quot; untuk mencari unsur-unsur dengan nama lokal yang diberikan dalam namespace apapun. Dengan ini pula, semua kombinasi wildcard sekarang bekerja seperti yang diharapkan: & quot; {ns} nama & quot ;, & quot; {} nama & quot ;, & quot; {*} nama & quot ;, & quot; {ns} * & quot ;, & quot; {} * & quot; dan & quot; {} * * & quot ;. Perhatikan bahwa & quot; nama & quot; setara dengan & quot; {} nama & quot ;, tapi & quot; * & quot; adalah & quot; {} * * & quot ;. Perubahan yang sama berlaku untuk .getiterator (), .itersiblings (), .iterancestors (), .iterdescendants (), .iterchildren () dan .itertext () metode, yang strip_attributes (), strip_elements () dan strip_tags () fungsi serta iterparse () kelas.
- C14N memungkinkan menetapkan prefiks inklusif yang akan dipromosikan ke tingkat atas selama serialisasi eksklusif.
- Bugs tetap:
- Melewati string Unicode panjang ke pakan () antarmuka parser gagal membaca seluruh string.
Apa yang baru dalam versi 2.3.5:
- Kecelakaan saat penggabungan node teks dalam element.remove ( ).
- Kecelakaan di sax / target parser ketika melaporkan DOCTYPE kosong.
Apa yang baru dalam versi 2.3.4:
- Kecelakaan ketika membangun sebuah nsmap (Elemen properti) dengan URI namespace kosong .
- Kecelakaan karena kondisi balapan ketika kesalahan (atau pesan pengguna) terjadi selama proses XSLT berulir.
- kompilasi stylesheet XSLT bisa mengabaikan kesalahan kompilasi .
Apa yang baru dalam versi 2.3.2:
- Fitur tambahan:
- lxml.objectify.deannotate () memiliki cleanup_namespaces boolean pilihan baru untuk menghapus deklarasi namespace merealisasikan (dan umumnya membersihkan deklarasi namespace) setelah mengeluarkan jenis penjelasan.
- lxml.objectify memperoleh subelement sendiri () fungsinya sebagai salinan etree.SubElement untuk menghindari impor jika berlebihan dari lxml.etree di sisi pengguna.
- Bugs tetap:
- Tetap & quot; keturunan & quot; bug di cssselect kedua kalinya (setelah fix pertama dalam lxml 2.3.1). Perubahan sebelumnya menghasilkan regresi kinerja yang serius untuk evaluasi berbasis XPath ekspresi diterjemahkan. Catatan bahwa ini melanggar penggunaan beberapa ekspresi XPath yang dihasilkan sebagai XSLT lokasi jalan yang sebelumnya bekerja di 2.3.1.
- parsing Tetap beberapa pemilih di cssselect. Spasi setelah combinators & quot; & Gt; & quot ;, & quot; + & quot; dan & quot; ~ & quot; sekarang benar diabaikan. Yang sebelumnya telah diuraikan sebagai combinator keturunan. Sebagai contoh, & quot; div & gt; .foo & quot; itu diurai sama dengan & quot; div & gt; * .foo & quot; bukannya & quot; div & gt; .foo & quot;.
Apa yang baru dalam versi 2.3.1:
- Fitur tambahan:
- Opsi baru kill_tags di lxml.html.clean untuk menghapus tag spesifik dan konten mereka (yaitu seluruh subtree mereka).
- pi.get () dan pi.attrib instruksi pengolahan untuk mengurai pseudo-atribut dari isi teks instruksi pengolahan.
- lxml.get_include () mengembalikan daftar termasuk jalur yang dapat digunakan untuk mengkompilasi kode C eksternal terhadap lxml.etree. Hal ini secara khusus diperlukan untuk terhubung statis lxml membangun ketika kode perlu mengkompilasi melawan sama persis versi file header sebagai lxml sendiri.
- Resolver.resolve_file () mengambil close_file opsi tambahan yang mengkonfigurasi jika file (-seperti) objek akan ditutup setelah membaca atau tidak. Secara default, file akan ditutup, karena pengguna tidak diharapkan untuk menjaga referensi untuk itu.
- Bugs tetap:
- pembersihan HTML tidak menghapus 'Data:'. Link
- Integrasi html5lib parser sekarang menggunakan implementasi 'resmi' di html5lib sendiri, yang membuatnya bekerja dengan rilis baru dari perpustakaan.
- Dalam lxml.sax, endElementNS () salah bisa menolak nama tag polos ketika acara dimulai sesuai disimpulkan nama tag polos yang sama berada di ruang nama default.
- Ketika sebuah file objek seperti terbuka dilewatkan ke parse () atau iterparse (), parser tidak akan lagi dekat itu setelah digunakan. Ini beralih perubahan lxml 2.3 dimana semua file akan ditutup. Ini adalah tanggung jawab pengguna untuk benar menutup file (-seperti) objek, juga dalam kasus kesalahan.
- kesalahan Sikap tegas dalam lxml.html.cleaner saat membuang unsur-unsur tingkat atas.
- Dalam lxml.cssselect, menggunakan XPath 'A // B' (kependekan dari 'A / keturunan-atau-self :: simpul () / B') bukan 'A / keturunan :: B' untuk css pemilih keturunan ('A B'). Hal ini membuat beberapa kasus tepi untuk konsisten dengan perilaku pemilih di WebKit dan Firefox, dan membuat ekspresi css lebih jalur lokasi yang valid (untuk digunakan dalam xsl: pertandingan template).
- Dalam lxml.html, tag non-terpilih tidak lagi muncul dalam bentuk nilai-nilai yang dikumpulkan.
- Menambah / menghapus nilai-nilai ke / dari beberapa pilih bentuk lapangan benar memilih mereka dan unselects mereka.
- Perubahan lain:
- Static membangun dapat menentukan direktori download dengan opsi --download-dir.
Apa yang baru di versi 2.3:
- Fitur tambahan:
- Bila mencari anak-anak, lxml.objectify mengambil '{} tag' sebagai makna sebuah namespace kosong, yang bertentangan dengan namespace induk.
- Bugs tetap:
- Setelah selesai membaca dari file objek seperti, parser segera memanggil .close () metode.
- Setelah selesai parsing, iterparse () segera menutup file input.
- Work-sekitar untuk libxml2 bug yang dapat meninggalkan parser HTML dalam keadaan non-fungsional setelah parsing dokumen rusak severly (tetap dalam libxml2 2.7.8).
- tag marque dalam kode pembersihan HTML bernama benar tenda.
- Perubahan lain:
- Beberapa fungsi publik di Cython tingkat C-API memiliki lebih eksplisit jenis kembali.
Apa yang baru dalam versi 2.2.8 / 2.3 Beta 1:
- Kecelakaan dalam versi yang lebih baru libxml2 saat bergerak elemen antara dokumen yang memiliki atribut pada node XInclude diganti.
- XMLID () function hilang parser dan base_url parameter opsional.
- Mencari tag wildcard di iterparse () rusak di Py3.
- lxml.html.open_in_browser () tidak bekerja dengan Python 3 karena penggunaan os.tempnam. Sekarang mengambil 'encoding' parameter opsional.
Persyaratan :
- Python
Komentar tidak ditemukan