xml.sax.saxutils --- SAX Tiện ích

Source code: Lib/xml/sax/saxutils.py


Mô-đun xml.sax.saxutils chứa một số lớp và hàm thường hữu ích khi tạo các ứng dụng SAX, sử dụng trực tiếp hoặc dưới dạng lớp cơ sở.

xml.sax.saxutils.escape(data, entities={})

Thoát '&', '<''>' trong một chuỗi dữ liệu.

Bạn có thể thoát khỏi các chuỗi dữ liệu khác bằng cách chuyển một từ điển dưới dạng tham số entities tùy chọn. Tất cả các khóa và giá trị đều phải là chuỗi; mỗi khóa sẽ được thay thế bằng giá trị tương ứng của nó. Các ký tự '&', '<''>' luôn được thoát, ngay cả khi entities được cung cấp.

Ghi chú

Hàm này chỉ nên được sử dụng để thoát các ký tự không thể sử dụng trực tiếp trong XML. Không sử dụng chức năng này làm chức năng dịch chuỗi chung.

xml.sax.saxutils.unescape(data, entities={})

Unescape '&amp;', '&lt;''&gt;' trong một chuỗi dữ liệu.

Bạn có thể bỏ thoát các chuỗi dữ liệu khác bằng cách chuyển một từ điển dưới dạng tham số entities tùy chọn. Tất cả các khóa và giá trị đều phải là chuỗi; mỗi khóa sẽ được thay thế bằng giá trị tương ứng của nó. '&amp;', '&lt;''&gt;' luôn không thoát, ngay cả khi entities được cung cấp.

xml.sax.saxutils.quoteattr(data, entities={})

Tương tự như escape(), nhưng cũng chuẩn bị data để sử dụng làm giá trị thuộc tính. Giá trị trả về là phiên bản được trích dẫn của data với mọi thay thế bắt buộc bổ sung. quoteattr() sẽ chọn ký tự trích dẫn dựa trên nội dung của data, cố gắng tránh mã hóa bất kỳ ký tự trích dẫn nào trong chuỗi. Nếu cả hai ký tự dấu ngoặc đơn và dấu ngoặc kép đều đã có trong data thì các ký tự dấu ngoặc kép sẽ được mã hóa và data sẽ được gói trong dấu ngoặc kép. Chuỗi kết quả có thể được sử dụng trực tiếp làm giá trị thuộc tính:

>>> print("<element attr=%s>" % quoteattr("ab ' cd \" ef"))
<element attr="ab ' cd " ef">

Hàm này hữu ích khi tạo các giá trị thuộc tính cho HTML hoặc bất kỳ SGML nào bằng cú pháp tham chiếu cụ thể.

class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)

Lớp này triển khai giao diện ContentHandler bằng cách ghi lại các sự kiện SAX vào tài liệu XML. Nói cách khác, sử dụng XMLGenerator làm trình xử lý nội dung sẽ tái tạo tài liệu gốc đang được phân tích cú pháp. out phải là một đối tượng giống như tệp sẽ mặc định là sys.stdout. encoding là mã hóa luồng đầu ra mặc định là 'iso-8859-1'. short_empty_elements kiểm soát định dạng của các phần tử không chứa nội dung: nếu False (mặc định) chúng được phát ra dưới dạng một cặp thẻ bắt đầu/kết thúc, nếu được đặt thành True thì chúng được phát ra dưới dạng một thẻ tự đóng duy nhất.

Thay đổi trong phiên bản 3.2: Đã thêm tham số short_empty_elements.

class xml.sax.saxutils.XMLFilterBase(base)

Lớp này được thiết kế để nằm giữa XMLReader và trình xử lý sự kiện của ứng dụng khách. Theo mặc định, nó không làm gì khác ngoài việc chuyển các yêu cầu đến trình đọc và các sự kiện đến các trình xử lý chưa được sửa đổi, nhưng các lớp con có thể ghi đè các phương thức cụ thể để sửa đổi luồng sự kiện hoặc các yêu cầu cấu hình khi chúng đi qua.

xml.sax.saxutils.prepare_input_source(source, base='')

Hàm này lấy nguồn đầu vào và cơ sở URL tùy chọn rồi trả về một đối tượng InputSource đã được phân giải đầy đủ sẵn sàng để đọc. Nguồn đầu vào có thể được cung cấp dưới dạng một chuỗi, một đối tượng giống như tệp hoặc một đối tượng InputSource; các trình phân tích cú pháp sẽ sử dụng hàm này để triển khai đối số source đa hình cho phương thức parse() của chúng.