Parser
Parser
Interne API — Die Klassen auf dieser Seite werden intern von der Dokumentkonvertierungspipeline verwendet. Die meisten Entwickler interagieren stattdessen mit
Document.save()undDocument.get_text(). Siehe Core Management für die öffentliche API.
Aspose.Words FOSS for Python enthält spezialisierte Parser, die strukturierte Daten aus den internen DOCX-Strukturen extrahieren. Das NumberingParser verarbeitet Listennummerierungsdefinitionen, und StyleParser extrahiert Dokumentstile.
Nummerierungsparser
NumberingParser liest die Nummerierungsdefinitionen aus einem DOCX‑Paket und stellt sie über eine Abfrage‑API bereit. Verwenden Sie parse_numbering_part(), um das Nummerierungs‑XML zu laden, und fragen Sie dann Listeneigenschaften mit Hilfsmethoden ab.
| Methode | Beschreibung |
|---|---|
NumberingParser.parse_numbering_part() | Parsen des DOCX-Nummerierungselements |
NumberingParser.get_list_info() | Informationen zu einer bestimmten Liste anhand der ID abrufen |
NumberingParser.get_level_info() | Details zum Level einer Liste bei gegebener Tiefe abrufen |
NumberingParser.is_ordered_list() | Prüfen, ob ein Listenniveau geordnet oder Aufzählungszeichen ist |
NumberingParser.get_start_value() | Startnummer für ein Listenniveau abrufen |
NumberingParser.get_delimiter() | Trennzeichenzeichenfolge für ein Listenniveau abrufen |
Stil-Parser
StyleParser analysiert Stilnamen in strukturierte ParsedStyle‑Objekte. Es identifiziert Überschriften, Blockzitate, Codeblöcke und Listenabsätze aus DOCX‑Stilnamen.
| Methode | Beschreibung |
|---|---|
StyleParser.parse() | Parsen Sie einen Stilnamen in ein ParsedStyle-Objekt |
StyleParser.get_style_chain() | Parsen Sie eine Kette von Stilnamen für vererbte Stile |
StyleParser.is_setext_heading() | Prüfen, ob ein Stil eine Setext‑Überschrift ist |
StyleParser.extract_all_styles() | Extrahieren Sie einzelne Stilnamen aus einer kommagetrennten Kette |
Nummerierungsdatenmodell
Geparste Nummerierungsdaten werden in strukturierten Objekten gespeichert:
| Klasse | Beschreibung |
|---|---|
NumberingInfo | Nummerierungsdefinition mit num_id, abstract_num_id und levels |
NumberingLevel | Level-Definition mit den Eigenschaften format, start und text |
ListInfo | Informationen über eine bestimmte List-Instanz |
ListLevelInfo | Level-spezifische Formatierungsdetails |
Tipps und bewährte Verfahren
- Rufen Sie
parse_numbering_part()einmal nach dem Laden eines Dokuments auf, um alle Listendefinitionen zu füllen - Verwenden Sie
is_ordered_list(), um nummerierte Listen von Aufzählungslisten zu unterscheiden - Verwenden Sie
get_style_chain(), um geerbte Stilketten in einem einzigen Aufruf zu analysieren - Nummerierungs‑ und Stilparser werden intern von der Dokumentkonvertierungspipeline verwendet
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Leere Nummerierungsdefinitionen | Dokument enthält keine Listen | Überprüfen Sie den Rückgabewert von get_list_info(), bevor Sie auf Eigenschaften zugreifen |
| Fehlender Stil | Stilname nicht erkannt | Verwenden Sie parse() mit einem bekannten Stilnamen |
| Falsche Listenniveau | Falscher Ebenenparameter | Listenebenen sind nullbasiert |
API-Referenzübersicht
| Klasse / Methode | Beschreibung |
|---|---|
NumberingParser.parse_numbering_part() | DOCX-Nummerierungsdefinitionen parsen |
NumberingParser.get_list_info() | Listeninformationen nach ID abfragen |
NumberingParser.is_ordered_list() | Überprüfen, ob eine Listenebene geordnet ist |
StyleParser.parse() | Einen Stilnamen in strukturierte Informationen parsen |
StyleParser.get_style_chain() | Eine Kette von geerbten Stilnamen parsen |
NumberingInfo | Datenmodell für Nummerierungsdefinitionen |
NumberingLevel | Level-Definition mit Format und Startwert |