13.5 xml.parsers.expat -- Analizzare velocemente XML usando Expat

Nuovo nella versione 2.0.

Il modulo xml.parsers.expat è un'interfaccia Python all'analizzatore Expat non validante XML. Il modulo fornisce un tipo singolo di estensione, xmlparser, che rappresenta lo stato corrente di un parser XML. Dopo che un oggetto xmlparser viene creato, vari attributi dell'oggetto possono essere impostati alle funzioni del gestore. Quando un documento XML viene quindi passato al parser, vengono chiamate le funzioni del gestore per i dati relativi ai caratteri ed il margine nel documento XML.

Questo modulo usa il modulo pyexpat per fornire l'accesso al parser Expat. L'uso diretto del modulo pyexpat è deprecato.

Questo modulo fornisce un'eccezione ed un tipo oggetto:

exception ExpatError
L'eccezione sollevata quando Expat riporta un errore. Vedere la sezione 13.5.2, ``Eccezioni ExpatError,'' per maggiori informazioni sull'interpretazione degli errori Expat.

exception error
un alias per ExpatError.

XMLParserType
Il tipo del valore restituito dalla funzione ParserCreate().

Il modulo xml.parsers.expat contiene due funzioni.:

ErrorString( errno)
Restituisce una stringa esplicativa per l'errore dato numero errno.

ParserCreate( [encoding[, namespace_separator]])
Crea e restituisce un nuovo oggetto xmlparser. encoding, se specificato, deve essere una stringa che chiama la codifica usata dai dati XML. Expat non supporta nessun'altra codifica come fa Python ed il suo repertorio di codifiche non può essere esteso; supporta UTF-8, UTF-16, ISO-8859-1(Latin1) e ASCII. Se encoding è presente, sovrascriverà l'implicita o esplicita codifica del documento.

Expat può, facoltativamente, fare l'elaborazione dello spazio dei nomi XML per voi, abilitarlo per fornire un valore per lo namespace_separator. Il valore deve essere una stringa di un carattere; verrà sollevata l'eccezione un ValueError se la stringa ha una lunghezza illegale (None viene considerato alla stregua di un'omissione). Quando l'elaborazione dello spazio dei nomi viene abilitata, i nomi degli elementi tipo che appartengono allo spazio dei nomi verranno espansi. L'elemento con nome, passato agli elementi di gestione StartElementHandler e EndElementHandler rappresenteranno la concatenazione dello spazio dei nomi URI, il carattere separatore dello spazio dei nomi e la parte locale del nome. Se il separatore dello spazio dei nomi viene impostato a zero byte (chr(0)) allora lo spazio dei nomi URI e la parte locale verranno concatenate senza alcun separatore.

Per esempio, se namespace_separator viene impostato sul carattere spazio (" ") e viene analizzato il seguente documento:

<?xml version="1.0"?>
<root xmlns    = "http://default-namespace.org/"
      xmlns:py = "http://www.python.org/ns/">
  <py:elem1 />
  <elem2 xmlns="" />
</root>

StartElementHandler riceverà la seguente stringa per ogni elemento:

http://default-namespace.org/ root
http://www.python.org/ns/ elem1
elem2

Vedete anche:

Il parser XML Expat
Home page del progetto Expat.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.