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 作為屬性值。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
(預設值),它們會以一對開始/結束(start/end)標籤的形式輸出;如果設定為True
,它們會以單一自封(self-closed)標籤的形式輸出。在 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 引數。