xml.sax.saxutils — SAX-Dienstprogramme¶
Quellcode: Lib/xml/sax/saxutils.py
Das Modul xml.sax.saxutils enthält eine Reihe von Klassen und Funktionen, die häufig bei der Erstellung von SAX-Anwendungen nützlich sind, entweder direkt oder als Basisklassen.
- xml.sax.saxutils.escape(data, entities={})¶
Maskiert
'&','<'und'>'in einem Datenstring.Sie können andere Datenzeichenfolgen maskieren, indem Sie ein Wörterbuch als optionalen Parameter entities übergeben. Die Schlüssel und Werte müssen alle Zeichenfolgen sein; jeder Schlüssel wird durch seinen entsprechenden Wert ersetzt. Die Zeichen
'&','<'und'>'werden immer maskiert, auch wenn entities angegeben wird.Hinweis
Diese Funktion sollte nur verwendet werden, um Zeichen zu maskieren, die nicht direkt in XML verwendet werden können. Verwenden Sie diese Funktion nicht als allgemeine Zeichenfolgenübersetzungsfunktion.
- xml.sax.saxutils.unescape(data, entities={})¶
Entmaskiert
'&','<'und'>'in einem Datenstring.Sie können andere Zeichenfolgen von Daten entmaskieren, indem Sie ein Wörterbuch als optionalen Parameter entities übergeben. Die Schlüssel und Werte müssen alle Zeichenfolgen sein; jeder Schlüssel wird durch seinen entsprechenden Wert ersetzt.
'&','<'und'>'werden immer entmaskiert, auch wenn entities angegeben wird.
- xml.sax.saxutils.quoteattr(data, entities={})¶
Ähnlich wie
escape(), bereitet aber auch data für die Verwendung als Attributwert vor. Der Rückgabewert ist eine maskierte Version von data mit allen weiteren erforderlichen Ersetzungen.quoteattr()wählt ein Anführungszeichen basierend auf dem Inhalt von data aus und versucht, alle Anführungszeichen in der Zeichenfolge zu vermeiden. Wenn sowohl einfache als auch doppelte Anführungszeichen bereits in data vorhanden sind, werden die doppelten Anführungszeichen kodiert und data wird in doppelte Anführungszeichen eingeschlossen. Die resultierende Zeichenfolge kann direkt als Attributwert verwendet werden.>>> print("<element attr=%s>" % quoteattr("ab ' cd \" ef")) <element attr="ab ' cd " ef">
Diese Funktion ist nützlich beim Generieren von Attributwerten für HTML oder jedes SGML unter Verwendung der Referenz-Konkretsyntax.
- class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)¶
Diese Klasse implementiert die Schnittstelle
ContentHandler, indem sie SAX-Ereignisse zurück in ein XML-Dokument schreibt. Mit anderen Worten, die Verwendung einesXMLGeneratorals Content-Handler reproduziert das ursprüngliche Dokument, das gerade analysiert wird. out sollte ein dateiähnliches Objekt sein, das standardmäßig sys.stdout verwendet. encoding ist die Kodierung des Ausgabestreams, die standardmäßig'iso-8859-1'ist. short_empty_elements steuert die Formatierung von Elementen, die keinen Inhalt haben: WennFalse(Standard) sind, werden sie als Paar von Start-/End-Tags ausgegeben. Wenn sie aufTruegesetzt sind, werden sie als einzelnes selbstschließendes Tag ausgegeben.Geändert in Version 3.2: Der Parameter short_empty_elements wurde hinzugefügt.
- class xml.sax.saxutils.XMLFilterBase(base)¶
Diese Klasse ist dafür konzipiert, zwischen einem
XMLReaderund den Ereignisbehandlern der Client-Anwendung zu sitzen. Standardmäßig tut sie nichts anderes, als Anfragen an den Reader und Ereignisse an die Handler unverändert weiterzuleiten, aber Unterklassen können bestimmte Methoden überschreiben, um den Ereignisstrom oder die Konfigurationsanfragen während ihres Durchlaufs zu ändern.
- xml.sax.saxutils.prepare_input_source(source, base='')¶
Diese Funktion nimmt eine Eingabequelle und eine optionale Basis-URL entgegen und gibt ein vollständig aufgelöstes
InputSource-Objekt zurück, das zum Lesen bereit ist. Die Eingabequelle kann als Zeichenfolge, als dateiähnliches Objekt oder alsInputSource-Objekt angegeben werden. Parser verwenden diese Funktion, um das polymorphe source-Argument ihrerparse()-Methode zu implementieren.