Treballar amb el processament XML
Treballar amb el processament XML
Els arxius XLSX emmagatzemen les seves dades en parts XML dins d’un paquet OPC. Aspose.Cells FOSS per .NET exposa la capa de parseig i serialització XML a través de quatre classes de mappador: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, i StylesheetXmlMapper.Cada cartograf implementa ambdues. Read i de la Write Aquestes són API d’infraestructura interna la majoria del codi de l’aplicació funciona completament a través de les aplicacions XML. Workbook i de la Worksheet objectes.
Classes de mapador XML
Cada mappador XML és responsable d’una part XML de l’estructura XLSX:
| Cartografiador | Part XML | Responsabilitat |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metadades a nivell de llibre, referències a les fletes, noms definits |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Dades de cèl·lula, fórmules, hipervincles, formats condicionals, validació de dades |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Taula de cadenes compartida per a valors de cadena desduplicats |
StylesheetXmlMapper | xl/styles.xml | Estils de cèl·lula, fonts, omplements, borderes, formats de números |
Cada cartograf mostra dos mètodes Read i de la Write invocada per la càrrega de la biblioteca i l’estalvi dels canonades respectivament.
XmlParsingException
XmlParsingException es llança quan un mappador troba XML malformat que no pot ser reparat. Es posa abans de la seva correcció i s’utilitza per a les aplicacions d’imatge. WorkbookLoadException en la jerarquia d’errors quan el fracàs es produeix durant l’anàlisi XML específicament.
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);
}Consells i millors pràctiques
- Set de punts
TryRepairXml = trueen elLoadOptionsPer activar la ruta d’anàlisi tolerant a errors del cartografiador. - Captura
XmlParsingExceptiona més de:WorkbookLoadExceptionen el tractament de fitxers procedents de sistemes externs que poden produir XML malformat. - Les classes XML de mapers no estan destinades a ser instanciades per codi d’aplicació que són invocades automàticament durant el procés.
Workbookconstrucció iSave(). - Si necessites inspeccionar el contingut XML en bruto per a diagnòstics, extraure l’XLSX com un ZIP i examinar les parts XML rellevants directament.
Problemàtiques comuns
| Edició | Causa | Correcció |
|---|---|---|
XmlParsingException en càrrega | XML malformat en una de les parts XLSX | Set de punts TryRepairXml = true en el LoadOptions |
| Estils desapareguts després del viatge d’anar i venir | StylesheetXmlMapper No es va poder analitzar un registre de estil personalitzat | Compte de pagament LoadDiagnostics.Issues per a les inscripcions de reparació relacionades amb l’estil. |
| Manca de cadenes compartides en un fitxer carregat | SharedStringTableXmlMapper Encontrat una taula de cadenes compartida corrompuda | Activació TryRepairXml;Verificar que el fitxer original té un codi de correcció vàlid. xl/sharedStrings.xml |
FAQ
Puc implementar el meu propi mappador XML?
Les classes de mappers XML són una infraestructura interna segellada. Els mapers personalitzats no estan compatibles amb la superfície actual d’API.
Per què hi ha una secció separada? SharedStringTableXmlMapper?
La especificació OOXML separa els valors de cadena en una taula de cadenes compartida (xl/sharedStrings.xmlEl mapper gestiona la lectura i l’escriptura d’aquesta taula de forma independent.
És així. TryRepairXml = true arreglar tots els problemes XML?
TryRepairXml tracta problemes recuperables com elements no tancats, espais de noms mancants i valors truncats. XML estructuralment vàlid però semànticament inconsistent (per exemple referències a fórmules trencades) encara pot causar XmlParsingException.
Resum de referència d’API
| Classe | Descripció |
|---|---|
WorkbookXmlMapper | Llegeix/escriu xl/workbook.xml |
WorksheetXmlMapper | Llegeix/escriu parts XML per pàgina |
SharedStringTableXmlMapper | Llegeix/escriu xl/sharedStrings.xml |
StylesheetXmlMapper | Llegeix/escriu xl/styles.xml |
XmlParsingException | Arrossegat en fallades d’anàlisi XML irrecuperables |