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.