xml.sax.saxutils --- SAX 工具集?

源代碼: Lib/xml/sax/saxutils.py


xml.sax.saxutils 模塊包含一些在創(chuàng)建 SAX 應用程序時十分有用的類和函數(shù),它們可以被直接使用,或者是作為基類使用。

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

對數(shù)據(jù)字符串中的 '&', '<''>' 進行轉(zhuǎn)義。

你可以通過傳入一個字典作為可選的 entities 形參來對其他字符串數(shù)據(jù)進行轉(zhuǎn)義。 字典的鍵和值必須為字符串;每個鍵將被替換為其所對應的值。 字符 '&', '<''>' 總是會被轉(zhuǎn)義,即使提供了 entities。

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

對字符串數(shù)據(jù)中的 '&amp;', '&lt;''&gt;' 進行反轉(zhuǎn)義。

你可以通過傳入一個字典作為可選的 entities 形參來對其他數(shù)據(jù)字符串進行轉(zhuǎn)義。 字典的鍵和值必須都為字符串;每個鍵將被替換為所對應的值。 '&amp', '&lt;''&gt;' 將總是保持不被轉(zhuǎn)義,即使提供了 entities。

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

類似于 escape(),但還會對 data 進行處理以將其用作屬性值。 返回值是 data 加上任何額外要求的替換的帶引號版本。quoteattr() 將基于 data 的內(nèi)容選擇一個引號字符,以盡量避免在字符串中編碼任何引號字符。 如果單雙引號字符在 data 中都存在,則雙引號字符將被編碼并且 data 將使用雙引號來標記。 結(jié)果字符串可被直接用作屬性值:

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

此函數(shù)適用于為 HTML 或任何使用引用實體語法的 SGML 生成屬性值。

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

這個類通過將 SAX 事件寫回到 XML 文檔來實現(xiàn) ContentHandler 接口。 換句話說,使用 XMLGenerator 作為內(nèi)容處理程序?qū)⒅匦庐a(chǎn)生所解析的原始文檔。 out 應當為一個文件類對象,它默認將為 sys.stdout。 encoding 為輸出流的編碼格式,它默認將為 'iso-8859-1'short_empty_elements 控制不包含內(nèi)容的元素的格式化:如為 False (默認值) 則它們會以開始/結(jié)束標記對的形式被發(fā)送,如果設(shè)為 True 則它們會以單個自結(jié)束標記的形式被發(fā)送。

3.2 新版功能: short_empty_elements 形參。

class xml.sax.saxutils.XMLFilterBase(base)?

這個類被設(shè)計用來分隔 XMLReader 和客戶端應用的事件處理程序。 在默認情況下,它除了將請求傳送給讀取器并將事件傳送給處理程序之外什么都不做,但其子類可以重載特定的方法以在傳送它們的時候修改事件流或配置請求。

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

此函數(shù)接受一個輸入源和一個可選的基準 URL 并返回一個經(jīng)過完整解析可供讀取的 InputSource。 輸入源的給出形式可以為字符串、文件類對象或 InputSource 對象;解析器將使用此函數(shù)來針對它們的 parse() 方法實現(xiàn)多態(tài) source 參數(shù)。