xml.sax.saxutils
— SAX 工具¶
模組 xml.sax.saxutils
包含許多在建立 SAX 應用程式時常用的類和函式,可以直接使用,也可以作為基類使用。
- xml.sax.saxutils.escape(data, entities={})¶
轉義資料字串中的
'&'
,'<'
和'>'
。您可以透過傳遞字典作為可選的 *entities* 引數來轉義其他資料字串。鍵和值都必須是字串;每個鍵都將被其對應的值替換。字元
'&'
、'<'
和'>'
始終會被轉義,即使提供了 *entities*。注意
此函式應僅用於轉義不能在 XML 中直接使用的字元。請勿將此函式用作通用的字串轉換函式。
- xml.sax.saxutils.unescape(data, entities={})¶
取消轉義資料字串中的
'&'
,'<'
和'>'
。您可以透過傳遞字典作為可選的 *entities* 引數來取消轉義其他資料字串。鍵和值都必須是字串;每個鍵都將被其對應的值替換。
'&'
、'<'
和'>'
始終會被取消轉義,即使提供了 *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 " ef">
此函式在為 HTML 或任何使用引用具體語法的 SGML 生成屬性值時很有用。
- class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)¶
此類透過將 SAX 事件寫回 XML 文件來實現
ContentHandler
介面。換句話說,使用XMLGenerator
作為內容處理程式將重現正在解析的原始文件。*out* 應該是一個類檔案物件,預設為 *sys.stdout*。*encoding* 是輸出流的編碼,預設為'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* 引數。