xml.sax.saxutils — SAX-verktyg

Källkod: Lib/xml/sax/saxutils.py


Modulen xml.sax.saxutils innehåller ett antal klasser och funktioner som ofta är användbara när man skapar SAX-applikationer, antingen för direkt användning eller som basklasser.

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

Escape '&', '<' och '>' i en datasträng.

Du kan undkomma andra datasträngar genom att skicka en ordbok som den valfria parametern entities. Nycklarna och värdena måste alla vara strängar; varje nyckel kommer att ersättas med motsvarande värde. Tecknen '&', '<' och '>' escapas alltid, även om entities anges.

Anteckning

Denna funktion bör endast användas för att escapa tecken som inte kan användas direkt i XML. Använd inte den här funktionen som en allmän strängöversättningsfunktion.

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

Avlägsna '&amp;', '&lt;' och '&gt;' i en datasträng.

Du kan unescape andra datasträngar genom att skicka en ordbok som den valfria parametern entities. Nycklarna och värdena måste alla vara strängar; varje nyckel kommer att ersättas med motsvarande värde. '&amp', '&lt;' och '&gt;' avkodas alltid, även om entities anges.

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

Liknar escape(), men förbereder också data för att användas som ett attributvärde. Returvärdet är en citerad version av data med eventuella ytterligare nödvändiga ersättningar. quoteattr() väljer ett citattecken baserat på innehållet i data och försöker undvika att koda alla citattecken i strängen. Om både enkla och dubbla citattecken redan finns i data, kodas de dubbla citattecknen och data omsluts av dubbla citattecken. Den resulterande strängen kan användas direkt som ett attributvärde:

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

Denna funktion är användbar när man genererar attributvärden för HTML eller SGML som använder syntaxen för referensbetong.

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

Den här klassen implementerar gränssnittet ContentHandler genom att skriva tillbaka SAX-händelser till ett XML-dokument. Med andra ord, om man använder en XMLGenerator som innehållshanterare kommer originaldokumentet att återskapas när det analyseras. out bör vara ett filliknande objekt som standard kommer att vara sys.stdout. encoding är kodningen av utdataströmmen som standard är 'iso-8859-1'. short_empty_elements kontrollerar formateringen av element som inte innehåller något innehåll: om False (standard) sänds de ut som ett par start/slut-taggar, om de sätts till True sänds de ut som en enda självstängd tagg.

Ändrad i version 3.2: Parametern short_empty_elements har lagts till.

class xml.sax.saxutils.XMLFilterBase(base)

Denna klass är utformad för att sitta mellan en XMLReader och klientapplikationens händelsehanterare. Som standard gör den inget annat än att skicka förfrågningar upp till läsaren och händelser vidare till hanterarna omodifierade, men underklasser kan åsidosätta specifika metoder för att modifiera händelseströmmen eller konfigurationsförfrågningarna när de passerar igenom.

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

Denna funktion tar en indatakälla och en valfri bas-URL och returnerar ett fullständigt upplöst InputSource-objekt som är klart för läsning. Indatakällan kan anges som en sträng, ett filliknande objekt eller ett InputSource-objekt; parsers kommer att använda denna funktion för att implementera det polymorfa source-argumentet till sin parse()-metod.