Analizzatori
Parser
Internal API — Le classi in questa pagina sono usate internamente dal pipeline di conversione dei documenti. La maggior parte degli sviluppatori interagisce invece con
Document.save()eDocument.get_text(). Vedi Core Management per l’API pubblica.
Aspose.Words FOSS for Python include parser specializzati che estraggono dati strutturati dagli internals di DOCX. Il NumberingParser gestisce le definizioni di numerazione delle liste, e StyleParser estrae gli stili del documento.
Parser di numerazione
NumberingParser legge le definizioni di numerazione da un pacchetto DOCX e le espone tramite un’API di query. Usa parse_numbering_part() per caricare l’XML di numerazione, quindi interroga le proprietà dell’elenco con i metodi di supporto.
| Metodo | Descrizione |
|---|---|
NumberingParser.parse_numbering_part() | Analizza l’elemento di numerazione DOCX |
NumberingParser.get_list_info() | Ottieni informazioni su una lista specifica per ID |
NumberingParser.get_level_info() | Ottieni i dettagli del livello per una lista a una determinata profondità |
NumberingParser.is_ordered_list() | Verifica se un livello di lista è ordinato o puntato |
NumberingParser.get_start_value() | Ottieni il numero iniziale per un livello di lista |
NumberingParser.get_delimiter() | Ottieni la stringa delimitatore per un livello di lista |
Parser di stile
StyleParser analizza i nomi degli stili in oggetti ParsedStyle strutturati. Identifica intestazioni, citazioni, blocchi di codice e paragrafi di elenco dai nomi degli stili DOCX.
| Metodo | Descrizione |
|---|---|
StyleParser.parse() | Analizza un nome di stile in un oggetto ParsedStyle |
StyleParser.get_style_chain() | Analizza una catena di nomi di stile per gli stili ereditati |
StyleParser.is_setext_heading() | Verifica se uno stile è un’intestazione in stile Setext |
StyleParser.extract_all_styles() | Estrai i singoli nomi di stile da una catena separata da virgole |
Modello di dati di numerazione
I dati di numerazione analizzati sono memorizzati in oggetti strutturati:
| Classe | Descrizione |
|---|---|
NumberingInfo | Definizione di numerazione con num_id, abstract_num_id e levels |
NumberingLevel | Definizione di livello con le proprietà format, start e text |
ListInfo | Informazioni su una specifica istanza di elenco |
ListLevelInfo | Dettagli di formattazione specifici per il livello |
Consigli e migliori pratiche
- Chiama
parse_numbering_part()una volta dopo aver caricato un documento per popolare tutte le definizioni di elenco - Usa
is_ordered_list()per distinguere gli elenchi numerati da quelli puntati - Usa
get_style_chain()per analizzare le catene di stile ereditate in una singola chiamata - I parser di numerazione e di stile sono utilizzati internamente dal pipeline di conversione dei documenti
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| Definizioni di numerazione vuote | Il documento non contiene elenchi | Verificare il valore di ritorno di get_list_info() prima di accedere alle proprietà |
| Stile mancante | Nome dello stile non riconosciuto | Usare parse() con un nome di stile noto |
| Livello di elenco errato | Parametro di livello errato | I livelli di elenco sono indicizzati a zero |
Riepilogo del Riferimento API
| Classe / Metodo | Descrizione |
|---|---|
NumberingParser.parse_numbering_part() | Analizza le definizioni di numerazione DOCX |
NumberingParser.get_list_info() | Interroga le informazioni dell’elenco per ID |
NumberingParser.is_ordered_list() | Verifica se un livello dell’elenco è ordinato |
StyleParser.parse() | Analizza un nome di stile in informazioni strutturate |
StyleParser.get_style_chain() | Analizza una catena di nomi di stile ereditati |
NumberingInfo | Modello di dati della definizione di numerazione |
NumberingLevel | Definizione di livello con formato e valore iniziale |