Werken met XML Processing

Werken met XML Processing

XLSX-bestanden slaan hun gegevens op in XML-onderdelen binnen een OPC-pakket. Aspose.Cells FOSS voor .NET biedt de XML parser- en serialisatielaag aan via vier mapper-klassen: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper en StylesheetXmlMapper. Elke mapper implementeert zowel Read als Write operaties voor het bijbehorende XML-onderdeel. Dit zijn interne infrastructuur-API’s — de meeste toepassingscode werkt volledig via de Workbook en Worksheet objecten.


XML Mapper-klassen

Elke XML mapper is verantwoordelijk voor één XML-onderdeel van de XLSX-structuur:

MapperXML deelResponsibility
WorkbookXmlMapperxl/workbook.xmlMetadata op werkboekniveau, bladverwijzingen, gedefinieerde namen
WorksheetXmlMapperxl/worksheets/sheetN.xmlCelgegevens, formules, hyperlinks, voorwaardelijke opmaak, gegevensvalidatie
SharedStringTableXmlMapperxl/sharedStrings.xmlGedeelde stringtabel voor gededupliceerde tekenreekswaarden
StylesheetXmlMapperxl/styles.xmlCelstijlen, lettertypen, vullingen, randen, getalformaten

Elke mapper stelt twee methoden beschikbaar — Read en Write — die respectievelijk door de laad- en opslaan-pijplijnen van de bibliotheek worden aangeroepen.


XmlParsingException

XmlParsingException wordt gegooid wanneer een mapper een misvormde XML tegenkomt die niet kan worden gerepareerd. Het wordt opgegooid vóór WorkbookLoadException in de fouthiërarchie wanneer de fout specifiek optreedt tijdens het parseren van XML.

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 en best practices

  • Stel TryRepairXml = true in LoadOptions in om het fouttolerante parsepad van de mapper in te schakelen.
  • Vang XmlParsingException op naast WorkbookLoadException bij het verwerken van bestanden van externe systemen die mogelijk misvormde XML produceren.
  • De XML mapperklassen zijn niet bedoeld om door applicatiecode te worden geïnstantieerd — ze worden automatisch aangeroepen tijdens de constructie van Workbook en Save().
  • Als je de ruwe XML-inhoud voor diagnostiek moet inspecteren, extraheer dan de XLSX als een ZIP en bekijk de relevante XML-onderdelen direct.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
XmlParsingException bij het ladenMisvormde XML in een van de XLSX-onderdelenStel TryRepairXml = true in LoadOptions
Ontbrekende stijlen na round-tripStylesheetXmlMapper kon een aangepast stijlrecord niet verwerkenControleer LoadDiagnostics.Issues op stijlgerelateerde reparatie-items
Shared strings ontbreken in geladen bestandSharedStringTableXmlMapper kwam een corrupte shared string-tabel tegenSchakel TryRepairXml in; controleer of het oorspronkelijke bestand een geldige xl/sharedStrings.xml heeft

FAQ

Kan ik mijn eigen XML mapper implementeren?

De XML mapperklassen vormen een afgesloten interne infrastructuur. Aangepaste mappers worden niet ondersteund in het huidige API oppervlak.

Waarom is er een aparte SharedStringTableXmlMapper?

De OOXML-specificatie scheidt tekenreekswaarden in een gedeelde tekenreeks-tabel (xl/sharedStrings.xml) om herhaalde tekenreeksen in de werkmap te dedupliceren. De mapper behandelt het lezen en schrijven van deze tabel onafhankelijk.

Lost TryRepairXml = true alle XML-problemen op?

TryRepairXml behandelt herstelbare problemen zoals niet-gesloten elementen, ontbrekende namespaces en afgekorte waarden. Structureel geldige maar semantisch inconsistente XML (bijv. kapotte formule-referenties) kan nog steeds XmlParsingException veroorzaken.


API Reference Samenvatting

KlasseBeschrijving
WorkbookXmlMapperLeest/schrijft xl/workbook.xml
WorksheetXmlMapperLeest/schrijft per blad XML onderdelen
SharedStringTableXmlMapperLeest/schrijft xl/sharedStrings.xml
StylesheetXmlMapperLeest/schrijft xl/styles.xml
XmlParsingExceptionGegooid bij onherstelbare XML parse-fouten

Zie ook

 Nederlands