Arbeiten mit XML-Verarbeitung

Arbeiten mit XML-Verarbeitung

Arbeiten mit XML-Verarbeitung

XLSX-Dateien speichern ihre Daten in XML-Teilen innerhalb eines OPC-Pakets. Aspose.Cells FOSS für .NET zeigt die XML-Parsing- und Serialisierungsschicht durch vier Mapper-Klassen: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, und StylesheetXmlMapper.Jeder Mapper implementiert beides . Read und Write Diese sind interne Infrastruktur-APIs die meisten Anwendungscode funktioniert vollständig durch die Workbook und Worksheet Gegenstände.


XML-Klassen für die Kartierung

Jeder XML-Mapper ist für einen XML Teil der XLSX-Struktur verantwortlich:

KartographXML-TeilVerantwortung
WorkbookXmlMapperxl/workbook.xmlMetadaten auf Arbeitsbücherebene, Referenzen zu Blättern, definierte Namen
WorksheetXmlMapperxl/worksheets/sheetN.xmlZelldaten, Formeln, Hyperlinks, bedingte Formate, Datenvalidierung
SharedStringTableXmlMapperxl/sharedStrings.xmlGemeinsame Zeichenfolge für entduplizierte Zeichenfolgenwerte
StylesheetXmlMapperxl/styles.xmlZellstile, Schriften, Füllungen, Randformate und Zahlenformat

Jeder Mapper zeigt zwei Methoden Read und . Write durch die Last der Bibliothek aufgerufen und Pipelines er­sparen.


XmlParsingException

XmlParsingException wird geworfen, wenn ein Mapper auf fehlerhafte XML trifft, die nicht repariert werden kann. Es wird vor dem WorkbookLoadException in der Fehlerhierarchie, wenn das Versagen speziell während des XML-Parsing auftritt.

using Aspose.Cells_FOSS;

var opts = new LoadOptions
{
    TryRepairPackage = true,
    TryRepairXml = true,
};

try
{
    var wb = new Workbook("malformed.xlsx", opts);
    Console.WriteLine("Loaded: " + wb.Worksheets.Count + " sheet(s)");
}
catch (XmlParsingException ex)
{
    Console.WriteLine("XML parse error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Load error: " + ex.Message);
}

Tipps und beste Praktiken

  • Setz TryRepairXml = true in der LoadOptions Um den fehlertoleranten Parsing-Pfad des Mappers zu aktivieren.
  • Fang XmlParsingException Zusätzlich zu: WorkbookLoadException bei der Handhabung von Dateien aus externen Systemen, die eine fehlerhafte XML-Formatierung hervorrufen können.
  • Die XML-Mapperklassen sind nicht dazu gedacht, durch Anwendungscode instanziert zu werden sie werden automatisch während der Anwendung aufgerufen. Workbook Bau und Save().
  • Wenn Sie den Roh-XML-Inhalt für die Diagnostik überprüfen müssen, extrahieren Sie das XLSX als ZIP und untersuchen Sie direkt die relevanten XML-Teile.

Häufige Probleme

AusgabeUrsacheBehebung
XmlParsingException aufgeladenFehlformatiertes XML in einem der XLSX-TeileSetz TryRepairXml = true in der LoadOptions
Fehlende Stile nach der RückfahrtStylesheetXmlMapper konnte einen benutzerdefinierten Stil-Record nicht analysierenÜberprüfung LoadDiagnostics.Issues für stilbezogene Reparaturenträge
Gemeinsame Zeichenketten fehlen in geladener DateiSharedStringTableXmlMapper auf eine korrupte gemeinsame String-Tabelle gestoßen istAktivieren TryRepairXml;Überprüfen Sie, ob die Originaldatei eine gültige Version hat. xl/sharedStrings.xml

FAQ

Kann ich meinen eigenen XML-Mapper implementieren?

Die XML-Mapperklassen sind versiegelte interne Infrastrukturen. Custom-Mappers werden in der aktuellen API-Oberfläche nicht unterstützt.

Warum gibt es eine separate SharedStringTableXmlMapper?

Die OOXML-Spezifikation trennt Zeichenkettenwerte in eine gemeinsame Stringtabelle (xl/sharedStrings.xmlDer Mapper verarbeitet das Lesen und Schreiben dieser Tabelle unabhängig voneinander.

Ist es so ? TryRepairXml = true alle XML-Probleme zu beheben?

TryRepairXml verarbeitet wiederherstellbare Probleme wie nicht geschlossene Elemente, fehlende Namensräume und abgeschnittenen Werte. Strukturell gültig aber semantisch inkonsistent XML (z. B. gebrochene Formelverweise) kann immer noch zu XmlParsingException.


Zusammenfassung der API-Referenzen

KlasseBeschreibung
WorkbookXmlMapperLesen/Schreiben xl/workbook.xml
WorksheetXmlMapperLesen/Schreiben von XML-Teilen pro Blatt
SharedStringTableXmlMapperLesen/Schreiben xl/sharedStrings.xml
StylesheetXmlMapperLesen/Schreiben xl/styles.xml
XmlParsingExceptionAuf unwiederbringliche XML-Parsefehler geworfen
 Deutsch