Arbejde med XML-behandling
Arbejde med XML-behandling
XLSX-filer gemmer deres data i XML dele inde i en OPC pakke. Aspose.Cells FOSS for .NET udsætter XML parsing og serialisering lag gennem fire mapper klasser: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, og StylesheetXmlMapper.Hver kortlægger implementerer begge dele. Read og: Write Disse er interne infrastruktur API’er de fleste applikationskode fungerer helt gennem den Workbook og: Worksheet genstande.
XML-mapperklasser
Hver XML-mappere er ansvarlig for en XML del af XLSX strukturen:
| Kartograf | XML-del | Forpligtelse |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metadata på arbejdsbogniveau, referencer til ark og definerede navne |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Celdata, formler, hyperlinks, betingede formater, datavalidering |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Delte strenge for de-duplicerede stringværdier |
StylesheetXmlMapper | xl/styles.xml | Cellstiler, skrifttyper, fyldninger, grænser og nummerformater |
Hver kortlægger viser to metoder Read og: Write påberåbes af biblioteksbelastningen og sparer henholdsvis rørledninger.
XmlParsingException
XmlParsingException er kastet, når en mapper støder på misdannede XML som ikke kan repareres. Det bliver rejst før WorkbookLoadException i fejlhierarkiet, når fejlen sker under XML-parsering specifikt.
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);
}Tips og bedste praksis
- Indstilling
TryRepairXml = truei denLoadOptionsat aktivere mapperens fejl-tolerante parseringsvej. - Fanger
XmlParsingExceptionUd over:WorkbookLoadExceptionved håndtering af filer fra eksterne systemer, som kan producere fejlformet XML. - XML-mapper klasserne er ikke beregnet til at blive instancieret af applikationskode de opkaldt automatisk under
Workbookbygge- og anlægsvirksomhedSave(). - Hvis du skal undersøge rå XML-indhold til diagnostik, udtræk XLSX som en ZIP og undersøg de relevante XML dele direkte.
Almindelige problemer
| Udgave: | Årsagen til dette | Forklaret |
|---|---|---|
XmlParsingException på last | Fejlformet XML i en af XLSX-delene | Indstilling TryRepairXml = true i den LoadOptions |
| Fraværende stilarter efter returrejse | StylesheetXmlMapper Kunne ikke analysere en brugerdefineret stilrekord | Kontrollering LoadDiagnostics.Issues for stilrelaterede reparationsoplysninger |
| Fraværende delte strenge i indlæst fil | SharedStringTableXmlMapper har fundet en korrupt delt string-tabel | Aktiverer TryRepairXml;Verificer, at den originale fil har en gyldig . xl/sharedStrings.xml |
FAQ
Kan jeg implementere min egen XML mapper?
XML-mapperklasserne er en forseglet intern infrastruktur. Tilpassede mappers understøttes ikke i den aktuelle API-overflade.
Hvorfor er der en separat SharedStringTableXmlMapper?
OOXML-specifikationen adskiller strengeværdier i en delt stringtabell (xl/sharedStrings.xmlDet er en funktion, der skal bruges til at fjerne duplikater af gentagne strenge i alle arbejdsbøger.
- Ja. Det gør det. TryRepairXml = true - Forklar alle XML-problemer?
TryRepairXml strukturelt gyldig, men semantisk inkonsekvent XML (f.eks. brudte formelreferencer) kan stadig forårsage XmlParsingException.
API-referenceoversigt
| Klasse | Beskrivelse: |
|---|---|
WorkbookXmlMapper | Læser/skriver xl/workbook.xml |
WorksheetXmlMapper | Læser/skriver XML-dele pr. ark |
SharedStringTableXmlMapper | Læser/skriver xl/sharedStrings.xml |
StylesheetXmlMapper | Læser/skriver xl/styles.xml |
XmlParsingException | Udkastet til en XML-parsefejl, der ikke kan genoprettes. |