lxml menggabungkan kecepatan perpustakaan tersebut dengan kesederhanaan bahasa Python.
Kompatibel dengan semua versi CPython 2,4-3,2
Apa yang baru dalam rilis ini:.
- lxml.html.iterlinks sekarang mengembalikan link dalam meta refresh tag.
- New XMLParser pilihan collect_ids = False untuk menonaktifkan pembuatan tabel ID hash. Hal ini secara substansial dapat mempercepat parsing dokumen dengan banyak ID yang berbeda yang tidak digunakan.
- parser menggunakan tabel hash per-dokumen untuk ID XML. Hal ini akan mengurangi beban dari parser dict global dan mempercepat parsing untuk dokumen dengan banyak ID yang berbeda.
- ElementTree.getelementpath (elemen) mengembalikan ekspresi ElementPath struktural untuk elemen tertentu, yang dapat digunakan untuk pencarian nanti.
- xmlfile () menerima argumen baru dekat = True untuk menutup file (-seperti) objek setelah menulis kepada mereka. Sebelum, xmlfile () hanya menutup file jika sudah dibuka secara internal.
- Izinkan & quot; bytearray & quot; Jenis untuk input teks ASCII.
Apa yang baru di versi 3.4.2:
- lxml.html.iterlinks sekarang kembali link dalam meta menyegarkan tag.
- New XMLParser pilihan collect_ids = False untuk menonaktifkan pembuatan tabel ID hash. Hal ini secara substansial dapat mempercepat parsing dokumen dengan banyak ID yang berbeda yang tidak digunakan.
- parser menggunakan tabel hash per-dokumen untuk ID XML. Hal ini akan mengurangi beban dari parser dict global dan mempercepat parsing untuk dokumen dengan banyak ID yang berbeda.
- ElementTree.getelementpath (elemen) mengembalikan ekspresi ElementPath struktural untuk elemen tertentu, yang dapat digunakan untuk pencarian nanti.
- xmlfile () menerima argumen baru dekat = True untuk menutup file (-seperti) objek setelah menulis kepada mereka. Sebelum, xmlfile () hanya menutup file jika sudah dibuka secara internal.
- Izinkan & quot; bytearray & quot; Jenis untuk input teks ASCII.
Apa yang baru di versi 3.3.2:
- Sifat resolvers dan versi, serta metode set_element_class_lookup () dan makeelement (), yang hilang dari benda-benda iterparse.
- Contoh XMLSchema, Schematron dan RelaxNG tidak jelas error_log lokal mereka sebelum menjalankan validasi.
- lxml.doctestcompare bercampur & quot; diharapkan & quot; dan & quot; yang sebenarnya & quot; nilai atribut.
Apa yang baru di versi 3.3.1:
- Bugs tetap:
- dokumen HTML diurai dengan parser.feed () gagal untuk menemukan unsur-unsur selama tag iterasi.
- Bangunan di PyPy gagal karena hilang dukungan untuk PyUnicode_Compare () dan PyByteArray _ * () di PyPy C-API.
- Kompilasi di MSVC gagal karena hilang & quot; stdint.h & quot; file header standar.
- iterparse () gagal untuk mengurai BOM diawali file.
Apa yang baru di versi 3.3.0:
- Bugs tetap:
- The heuristik yang membedakan path file dari URL diperketat untuk menghasilkan negatif palsu kurang.
Apa yang baru di versi 3.2.3:
- dukungan Tetap untuk Python 2.4 yang hilang di 3.2 .2.
Apa yang baru di versi 3.2.1:
- Metode apply_templates () dan process_children () dari elemen ekstensi XSLT telah mendapatkan dua pilihan boolean baru elements_only dan remove_blank_text yang membuang baik semua string atau spasi-satunya string dari daftar hasil.
Apa yang baru di versi 3.2.0:
- Memimpin spasi bisa mengubah perilaku string parsing fungsi dalam lxml.html.
- String parsing fungsi dalam lxml.html lebih kuat dalam menghadapi konten HTML biasa seperti framesets atau tag tubuh hilang.
- I / O kesalahan ketika mencoba untuk mengakses file dengan jalur yang berisi karakter non-ASCII bisa meningkatkan UnicodeDecodeError bukan benar melaporkan IOError.
- Parsing dari in-memory string akses jaringan dinonaktifkan dalam parser default dan melakukan upaya-upaya selanjutnya untuk mengurai dari URL gagal.
Apa yang baru di versi 3.1.2:
- atribut Passing melalui API namespace-menyadari Jembatan sax (yaitu handler.startElement () metode) gagal dengan TypeError.
- kesalahan serialisasi tetap output XSLT ketika mengkonversi pohon hasil ke string Unicode.
Apa yang baru di versi 3.0.2:
- Fixed crash selama shutdown juru dengan beralih ke Cython 0,17 .3 untuk membangun.
Apa yang baru di versi 3.0:
- C14N memungkinkan menentukan prefiks inklusif untuk dipromosikan ke top- tingkat selama serialisasi eksklusif.
- dukungan awal untuk membangun di PyPy (melalui cpyext).
- objek DTD memperoleh API yang memungkinkan akses baca untuk deklarasi mereka.
- xpathgrep.py memperoleh dukungan untuk parsing baris demi baris (misalnya dari output grep) dan sekitarnya output dengan tag akar baru.
- E-pabrik di lxml.builder menerima subtipe dari tipe data yang dikenal (seperti string subtipe) ketika membangun unsur di sekitar mereka.
- Pohon iterasi dan iterparse () dengan tag argumen selektif mendukung melewati serangkaian tag. Node pohon akan dikembalikan oleh iterator jika mereka cocok dengan tag.
Apa yang baru di versi 2.3.5:
- Kecelakaan saat penggabungan node teks dalam element.remove ( ).
- Kecelakaan di sax / target parser ketika melaporkan DOCTYPE kosong.
Apa yang baru di 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 pengolahan XSLT berulir.
- kompilasi stylesheet XSLT bisa mengabaikan kesalahan kompilasi .
Apa yang baru di versi 2.3.3:
- Fitur menambahkan:
- lxml.html.tostring () memperoleh pilihan serialisasi baru with_tail dan DOCTYPE.
- Bugs tetap:
- Fixed crash ketika menggunakan iterparse () untuk parsing HTML dan meminta peristiwa awal.
- parsing tetap dari pemilih lebih cssselect. Spasi sebelum pseudo-elemen dan pseudo-kelas sangat penting karena itu adalah combinator keturunan. & Quot; E: semu & quot; harus mengurai sama dengan & quot; E *: semu & quot ;, tidak & quot; E:. semu & quot;
- lxml.html.diff tidak lagi menimbulkan pengecualian ketika memukul tag 'img' tanpa 'src' atribut.
Apa yang baru di versi 2.3.2:
- Fitur menambahkan:
- lxml.objectify.deannotate () memiliki cleanup_namespaces boolean pilihan baru untuk menghapus deklarasi namespace merealisasikan (dan umumnya membersihkan deklarasi namespace) setelah mengeluarkan jenis anotasi.
- lxml.objectify memperoleh subelement sendiri () fungsinya sebagai salinan etree.SubElement untuk menghindari impor dinyatakan 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 mengakibatkan regresi kinerja yang serius untuk evaluasi berdasarkan XPath ekspresi diterjemahkan. Catatan bahwa ini melanggar penggunaan beberapa ekspresi XPath dihasilkan sebagai XSLT lokasi jalan yang sebelumnya bekerja di 2.3.1.
- parsing Tetap beberapa pemilih di cssselect. Spasi setelah combinators & quot; & # x3e; & quot ;, & quot; + & quot; dan & quot; ~ & quot; sekarang benar diabaikan. Sebelumnya adalah yang diuraikan sebagai combinator keturunan. Misalnya, & quot; div & # x3e; .foo & quot; itu diurai sama dengan & quot; div & # x3e; * .foo & quot; bukan & quot; div & # x3e; .foo & quot;.
Apa yang baru di versi 2.3.1:
- Fitur menambahkan:
- Pilihan 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 konten teks petunjuk pengolahan.
- lxml.get_include () mengembalikan daftar termasuk jalur yang dapat digunakan untuk mengkompilasi kode C eksternal terhadap lxml.etree. Ini secara khusus diperlukan untuk terhubung statis lxml membangun ketika kode perlu mengkompilasi terhadap yang 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 () tidak benar bisa menolak nama tag polos ketika acara mulai 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 di lxml.html.cleaner ketika membuang elemen 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 berlaku (untuk digunakan dalam xsl: pertandingan template).
- Dalam lxml.html, non-dipilih & # x3c; pilihan & # x3e; tag tidak lagi muncul dalam bentuk nilai-nilai yang dikumpulkan.
- Menambahkan / menghapus & # x3c; pilihan & # x3e; 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 menambahkan:
- Bila mencari anak-anak, lxml.objectify mengambil '{} tag' sebagai berarti sebuah namespace kosong, yang bertentangan dengan namespace induk.
- Bugs tetap:
- Setelah selesai membaca dari objek file 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 yang rusak severly (tetap di libxml2 2.7.8).
- Marque tag dalam kode HTML pembersihan dengan benar bernama tenda.
- Perubahan lain:
- Beberapa fungsi publik di Cython tingkat C-API memiliki lebih eksplisit jenis pulang.
Apa yang baru dalam versi 2.3beta1:
- Bugs tetap:
- Kecelakaan di versi yang lebih baru libxml2 ketika bergerak elemen antara dokumen yang memiliki atribut pada node XInclude diganti.
- XMLID () fungsi 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.
Komentar tidak ditemukan