lxml kết hợp tốc độ của những thư viện với sự đơn giản của ngôn ngữ Python.
Tương thích với tất cả các phiên bản CPython 2,4-3,2
là gì mới trong phiên bản này:.
- lxml.html.iterlinks nghiệp trả về các liên kết bên trong các thẻ meta refresh.
- New XMLParser tùy chọn collect_ids = False để vô hiệu hóa ID băm tạo bảng. Điều này đáng kể có thể tăng tốc độ phân tích tài liệu với nhiều ID khác nhau mà không được sử dụng.
- Các phân tích cú pháp sử dụng mỗi tài liệu bảng băm cho ID XML. Điều này làm giảm tải trọng của dict phân tích cú pháp toàn cầu và tăng tốc độ phân tích cú pháp cho các tài liệu với nhiều ID khác nhau.
- ElementTree.getelementpath (phần tử) trả về một biểu ElementPath cấu trúc cho các yếu tố nhất định, mà có thể được sử dụng để tra cứu sau này.
- xmlFile () chấp nhận một lập luận mới gần = True để đóng file (-like) các đối tượng sau khi viết cho họ. Trước đây, xmlFile () chỉ đóng tệp tin nếu nó đã mở nó trong nội bộ.
- Cho phép & quot; bytearray & quot; loại để nhập văn bản ASCII.
là gì mới trong phiên bản 3.4.2:
- lxml.html.iterlinks bây giờ trả lại các liên kết bên trong meta làm mới thẻ.
- New XMLParser tùy chọn collect_ids = False để vô hiệu hóa ID băm tạo bảng. Điều này đáng kể có thể tăng tốc độ phân tích tài liệu với nhiều ID khác nhau mà không được sử dụng.
- Các phân tích cú pháp sử dụng mỗi tài liệu bảng băm cho ID XML. Điều này làm giảm tải trọng của dict phân tích cú pháp toàn cầu và tăng tốc độ phân tích cú pháp cho các tài liệu với nhiều ID khác nhau.
- ElementTree.getelementpath (phần tử) trả về một biểu ElementPath cấu trúc cho các yếu tố nhất định, mà có thể được sử dụng để tra cứu sau này.
- xmlFile () chấp nhận một lập luận mới gần = True để đóng file (-like) các đối tượng sau khi viết cho họ. Trước đây, xmlFile () chỉ đóng tệp tin nếu nó đã mở nó trong nội bộ.
- Cho phép & quot; bytearray & quot; loại để nhập văn bản ASCII.
là gì mới trong phiên bản 3.3.2:
- Các tính chất phân giải và phiên bản, cũng như các phương pháp set_element_class_lookup () và makeelement (), đã bị mất từ các đối tượng iterparse.
- Thể hiện của XMLSCHEMA, Schematron và RelaxNG không xóa error_log địa phương của họ trước khi chạy một xác nhận.
- lxml.doctestcompare hỗn hợp lên & quot; dự kiến & quot; và & quot; thực tế & quot; trong các giá trị thuộc tính.
là gì mới trong phiên bản 3.3.1:
- Lỗi cố định:
- tài liệu HTML được phân tích bằng parser.feed () không tìm thấy yếu tố trong quá trình lặp đi lặp lại từ khóa.
- Xây dựng trong PyPy thất bại do thiếu hỗ trợ cho PyUnicode_Compare () và PyByteArray _ * () trong C-API PyPy của.
- Compilation trong MSVC thất bại do thiếu & quot; stdint.h & quot; tập tin tiêu đề chuẩn.
- iterparse () không phân tích BOM tiền tố tập tin.
là gì mới trong phiên bản 3.3.0:
- Lỗi cố định:
- Các heuristic phân biệt các đường dẫn tập tin từ các URL đã được thắt chặt để sản xuất âm ít sai.
là gì mới trong phiên bản 3.2.3:
- Cố định hỗ trợ cho Python 2.4 mà đã bị mất trong 3.2 .2.
là gì mới trong phiên bản 3.2.1:
- Các apply_templates phương pháp () và process_children () của thành phần mở rộng XSLT đã đạt được hai lựa chọn boolean mới elements_only và remove_blank_text rằng loại bỏ hoặc là tất cả các chuỗi hoặc khoảng trắng chỉ chuỗi từ danh sách kết quả.
là gì mới trong phiên bản 3.2.0:
- Dẫn đầu khoảng trắng có thể thay đổi hành vi của phân tích chuỗi chức năng trong lxml.html.
- Các chuỗi phân tích chức năng trong lxml.html là mạnh mẽ hơn khi đối mặt với nội dung HTML không phổ biến như bộ khung hoặc thiếu thẻ cơ thể.
- I / O lỗi khi cố gắng truy cập vào các tập tin với đường dẫn có chứa các ký tự ASCII có thể tăng UnicodeDecodeError thay vì đúng báo cáo IOError.
- Phân tích cú pháp từ trong bộ nhớ chuỗi vô hiệu hóa truy cập mạng trong các phân tích cú pháp mặc định và thực hiện nỗ lực tiếp theo để phân tích từ một URL thất bại.
là gì mới trong phiên bản 3.1.2:
- Passing thuộc tính thông qua các API namespace-không biết sự sax cầu (tức là handler.startElement () phương pháp) đã thất bại với một Lỗi Loại.
- Sửa lỗi serialization trong đầu ra khi chuyển đổi XSLT cây kết quả cho một chuỗi Unicode.
là gì mới trong phiên bản 3.0.2:
- Sửa lỗi treo trong quá trình thông dịch tắt máy bằng cách chuyển sang Cython 0.17 0,3 cho tòa nhà.
là gì mới trong phiên bản 3.0:
- C14N cho phép xác định các tiền tố toàn diện để được thăng đặt từ trên nồng độ trong quá serialization độc quyền.
- hỗ trợ ban đầu xây dựng trong PyPy (thông qua cpyext).
- đối tượng DTD đã đạt được một API cho phép truy cập đọc vào tờ khai của họ.
- xpathgrep.py được sự hỗ trợ cho việc phân tích line-by-line (ví dụ như từ đầu ra grep) và xung quanh đầu ra với một thẻ gốc mới.
- E-nhà máy ở lxml.builder chấp nhận phụ của các loại dữ liệu được biết đến (như kiểu phụ string) khi xây dựng các yếu tố xung quanh họ.
- Tree lặp và iterparse () với một số tag chọn lọc hỗ trợ đi qua một bộ các thẻ. Nút Tree sẽ được trả về bởi các vòng lặp nếu chúng phù hợp với bất kỳ của các thẻ.
là gì mới trong phiên bản 2.3.5:
- Crash khi sáp nhập các nút văn bản trong element.remove ( ).
- Crash trong sax / mục tiêu phân tích cú pháp khi báo cáo DOCTYPE trống.
là gì mới trong phiên bản 2.3.4:
- Crash khi xây dựng một nsmap (Element tài sản) với URI không gian tên sản phẩm nào.
- Tai nạn do điều kiện chủng tộc khi lỗi (hoặc tin nhắn người sử dụng) xảy ra trong quá trình xử lý XSLT ren.
- XSLT stylesheet biên soạn có thể bỏ qua các lỗi biên dịch.
là gì mới trong phiên bản 2.3.3:
- Các tính năng bổ sung:
- lxml.html.tostring () đã đạt được tùy chọn serialization mới with_tail và loại tài liệu.
- Lỗi cố định:
- Cố định một vụ tai nạn khi sử dụng iterparse () để phân tích cú pháp HTML và yêu cầu sự kiện bắt đầu.
- Cố định phân tích của bộ chọn hơn trong cssselect. Khoảng trắng trước khi giả thành phần và các giả lớp là quan trọng vì nó là một combinator hậu duệ. & Quot; E: giả & quot; nên phân tích tương tự như & quot; E *: pseudo & quot ;, không & quot; E:. giả & quot;
- lxml.html.diff không còn đặt ra một ngoại lệ khi nhấn 'img' thẻ mà không cần 'src' thuộc tính.
là gì mới trong phiên bản 2.3.2:
- Các tính năng bổ sung:
- lxml.objectify.deannotate () có một tùy chọn mới cleanup_namespaces boolean để loại bỏ các khai báo không gian tên làm thành khách quan (và nói chung là làm sạch các tờ khai không gian tên) sau khi gỡ bỏ các chú thích loại.
- lxml.objectify tăng SubElement riêng () chức năng của nó như là một bản sao của etree.SubElement để tránh nhập khẩu nếu không dư thừa của lxml.etree về phía người sử dụng.
- Lỗi cố định:
- Cố định các & quot; hậu duệ & quot; lỗi trong cssselect một lần thứ hai (sau khi một sửa chữa đầu tiên trong lxml 2.3.1). Sự thay đổi trước đó dẫn đến một hồi quy hiệu suất nghiêm trọng cho việc đánh giá XPath dựa trên các biểu hiện dịch. Lưu ý rằng điều này phá vỡ việc sử dụng một số các biểu thức XPath tạo ra như XSLT đường dẫn vị trí mà trước đây từng làm việc trong 2.3.1.
- Cố định phân tích của một số bộ chọn trong cssselect. Khoảng trắng sau combinators & quot; & # x3e; & quot ;, & quot; + & quot; và & quot; ~ & quot; bây giờ được bỏ qua một cách chính xác. Trước đây được được phân tích như một combinator hậu duệ. Ví dụ: & quot; div & # x3e; .foo & quot; được phân tích cú pháp tương tự như & quot; div & # x3e; * .foo & quot; thay vì & quot; div & # x3e; .foo & quot;.
là gì mới trong phiên bản 2.3.1:
- Các tính năng bổ sung:
- Lựa chọn mới kill_tags trong lxml.html.clean để loại bỏ các thẻ cụ thể và nội dung của họ (tức là toàn bộ cây con của họ).
- pi.get () và pi.attrib về hướng dẫn xử lý để phân tích pseudo-thuộc tính từ các nội dung văn bản hướng dẫn xử lý.
- lxml.get_include () trả về một danh sách gồm các đường dẫn có thể được sử dụng để biên dịch mã C bên ngoài chống lại lxml.etree. Đây là yêu cầu đặc biệt cho lxml liên kết tĩnh xây dựng khi mã cần phải biên dịch so với cùng phiên bản tập tin tiêu đề chính xác như lxml chính nó.
- Resolver.resolve_file () có một tùy chọn close_file thêm cấu hình thành nếu các tập tin (-like) đối tượng sẽ được đóng lại sau khi đọc hay không. Theo mặc định, các tập tin sẽ được đóng lại, là người dùng không được dự kiến sẽ giữ một tham chiếu đến nó.
- Lỗi cố định:
- làm sạch HTML đã không loại bỏ 'data:'. Liên kết
- Việc tích hợp html5lib phân tích cú pháp bây giờ sử dụng thực hiện 'chính thức' trong html5lib chính nó, mà làm cho nó làm việc với các phiên bản mới hơn của thư viện.
- Trong lxml.sax, endElementNS () không đúng cách có thể từ chối một tên thẻ đồng bằng khi sự kiện bắt đầu tương ứng suy ra cùng tên thẻ đồng bằng được trong không gian tên mặc định.
- Khi một đối tượng tập tin giống như mở được thông qua vào parse () hoặc iterparse (), phân tích cú pháp sẽ không còn gần gũi sau khi sử dụng. Điều này trở lại trạng một sự thay đổi trong lxml 2.3, nơi tất cả các tập tin sẽ được đóng lại. Đó là những người sử dụng có trách nhiệm đúng đóng file (-like) đối tượng, cũng trong trường hợp lỗi.
- lỗi Assertion trong khi loại bỏ các yếu tố lxml.html.cleaner cấp cao nhất.
- Trong lxml.cssselect, sử dụng xpath 'A // B' (viết tắt của 'A / descendant-or-self :: node () / B') thay vì 'A / descendant :: B' cho css selector hậu duệ ('A B'). Điều này làm cho một vài trường hợp cạnh để phù hợp với các hành vi chọn trong WebKit và Firefox, và làm cho biểu thức css nhiều đường dẫn vị trí hợp lệ (để sử dụng trong xsl: template match).
- Trong lxml.html, không lựa chọn & # x3c; lựa chọn & # x3e; thẻ không còn hiển thị trong các giá trị hình thức thu thập được.
- Thêm / gỡ bỏ & # x3c; lựa chọn & # x3e; giá trị đến / từ một chọn trường mẫu nhiều lựa chọn đúng họ và unselects họ.
- Các thay đổi khác:
- Static xây dựng có thể chỉ định thư mục tải về với các tùy chọn --download-dir.
là gì mới trong phiên bản 2.3:
- Các tính năng bổ sung:
- Khi tìm kiếm trẻ em, lxml.objectify mất '{} tag' như có nghĩa là một không gian trống rỗng, như trái ngược với các không gian tên cha mẹ.
- Lỗi cố định:
- Khi đọc từ một đối tượng tập tin giống như hoàn tất, các phân tích cú pháp ngay lập tức gọi .close phương pháp của nó ().
- Khi hoàn tất phân tích cú pháp, iterparse () ngay lập tức đóng file đầu vào.
- Work-chữa lỗi libxml2 có thể để lại các phân tích cú pháp HTML trong một trạng thái không hoạt động sau khi phân tích một tài liệu bị hỏng severly (cố định trong libxml2 2.7.8).
- tag Marque trong mã ngẫu HTML có tên đúng marquee.
- Các thay đổi khác:
- Một số chức năng công cộng trong Cython cấp C-API có loại trở lại rõ ràng hơn.
là gì mới trong phiên bản 2.3beta1:
- Lỗi cố định:
- Crash trong các phiên bản mới hơn libxml2 khi di chuyển các yếu tố giữa các tài liệu mà có thuộc tính trên các nút XInclude thay thế.
- XMLID () chức năng đã thiếu phân tích cú pháp và BASE_URL thông số tùy chọn.
- Tìm kiếm các thẻ tự đại diện trong iterparse () đã bị hỏng trong Py3.
- lxml.html.open_in_browser () không làm việc trong Python 3 do việc sử dụng các os.tempnam. Nó bây giờ có một tham số 'mã hóa' tùy chọn.
Bình luận không