Questo modulo definisce una classe HTMLParser che rappresenta la base per analizzare file di testo formattati in HTML (HyperText Markup Languages) e XHTML. Diversamente dal parser in htmllib, questo non è basato sul parser SGML sgmllib.
) |
Un'istanza di HTMLParser scorre i dati in HTML e richiama funzioni di gestione quando i tag vengono aperti e chiusi. La classe HTMLParser è stata ideata per essere sovrascritta dall'utente per ottenere i comportamenti desiderati.
Diversamente dal parser in htmllib, questo non controlla che il tag di chiusura coincida con quello di apertura e non richiama il gestore dei tag di chiusura per gli elementi che vengono implicitamente chiusi dalla chiusura di altri elementi.
Le istanze di HTMLParser hanno i seguenti metodi:
) |
data) |
) |
) |
) |
tag, attrs) |
L'argomento tag è il nome del tag scritto in caratteri
minuscoli. L'argomento attrs è una lista di coppie
(nome, valore)
che contengono gli attributi
contenuti tra le parentesi angolari <>
del tag. Il nome
name viene convertito in caratteri minuscoli e le virgolette
doppie ed i backslash nel valore value dell'attributo, vengono
interpretati. Ad esempio, per il tag
<A HREF="http://www.cwi.nl/">
, il metodo sarà
"handle_starttag('a', [('href', 'http://www.cwi.nl/')])".
tag, attrs) |
<a .../>
). Il
metodo può essere sovrascritto da una sotto classe che richiede questa
particolare informazione lessicale; l'implementazione predefinita
invoca semplicemente handle_starttag() e
handle_endtag().
tag) |
data) |
name) |
name) |
data) |
'text'
. È progettato per essere sovrascritto da una classe
derivata; l'implementazione della classe base non fa nulla.
decl) |
<!
...>
. È
progettato per essere sovrascritto da una classe derivata;
l'implementazione della classe base non fa nulla.
data) |
<?proc color='red'>
, il metodo verrà chiamato in questo modo:
handle_pi("proc color='red'")
. È progettato per essere
sovrascritto da una classe derivata; l'implementazione della classe
base non fa nulla.
Note: La classe HTMLParser usa le regole sintattiche dell'SGML per analizzare le istruzioni. Se una istruzione di analisi XHTML usa il carattere"?", questo "?" verrà incluso nel parametro data.