xml.sax.saxutils — SAX 工具

原始碼: Lib/xml/sax/saxutils.py


模組 xml.sax.saxutils 包含許多在建立 SAX 應用程式時常用且有用的類和函式,可以直接使用或作為基類使用。

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

跳脫字元串資料中的 '&''<''>'

您可以透過傳遞字典作為可選的 entities 引數來轉義其他字串資料。鍵和值都必須是字串;每個鍵都將被其對應的值替換。字元 '&''<''>' 總是會被轉義,即使提供了 entities

備註

此函式僅應用於轉義無法直接在 XML 中使用的字元。不要將此函式用作通用的字串翻譯函式。

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

在字串資料中取消轉義 '&amp;''&lt;''&gt;'

您可以透過傳遞字典作為可選的 entities 引數來取消轉義其他字串資料。鍵和值都必須是字串;每個鍵都將被其對應的值替換。'&amp''&lt;''&gt;' 總是會被取消轉義,即使提供了 entities

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

類似於 escape(),但還準備 data 以用作屬性值。返回值是 data 的帶引號版本,並帶有任何其他所需的替換。quoteattr() 將根據 data 的內容選擇引號字元,嘗試避免對字串中的任何引號字元進行編碼。如果單引號和雙引號字元都已在 data 中,則雙引號字元將被編碼,並且 data 將被雙引號括起來。結果字串可以直接用作屬性值。

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

此函式在為 HTML 或使用引用具體語法的任何 SGML 生成屬性值時非常有用。

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

此類透過將 SAX 事件寫回 XML 文件來實現 ContentHandler 介面。換句話說,使用 XMLGenerator 作為內容處理程式將再現被解析的原始文件。out 應該是一個類似檔案的物件,預設為 sys.stdoutencoding 是輸出流的編碼,預設為 'iso-8859-1'short_empty_elements 控制不包含內容的元素的格式:如果為 False (預設值),它們被作為一對開始/結束標籤發出;如果設定為 True,它們被作為單個自閉合標籤發出。

3.2 版本中的變化: 添加了 short_empty_elements 引數。

class xml.sax.saxutils.XMLFilterBase(base)

此類旨在位於 XMLReader 和客戶端應用程式的事件處理程式之間。預設情況下,它只將請求傳遞給讀取器,並將事件未修改地傳遞給處理程式,但子類可以覆蓋特定方法以修改事件流或配置請求,因為它們會透過。

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

此函式接受一個輸入源和一個可選的基本 URL,並返回一個完全解析的 InputSource 物件,可供讀取。輸入源可以作為字串、類似檔案的物件或 InputSource 物件提供;解析器將使用此函式來實現其 parse() 方法的多型 source 引數。