Treballar amb el processament XML

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:

CartografiadorPart XMLResponsabilitat
WorkbookXmlMapperxl/workbook.xmlMetadades a nivell de llibre, referències a les fletes, noms definits
WorksheetXmlMapperxl/worksheets/sheetN.xmlDades de cèl·lula, fórmules, hipervincles, formats condicionals, validació de dades
SharedStringTableXmlMapperxl/sharedStrings.xmlTaula de cadenes compartida per a valors de cadena desduplicats
StylesheetXmlMapperxl/styles.xmlEstils 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 = true en el LoadOptions Per activar la ruta d’anàlisi tolerant a errors del cartografiador.
  • Captura XmlParsingException a més de: WorkbookLoadException en 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. Workbook construcció i Save().
  • 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óCausaCorrecció
XmlParsingException en càrregaXML malformat en una de les parts XLSXSet de punts TryRepairXml = true en el LoadOptions
Estils desapareguts després del viatge d’anar i venirStylesheetXmlMapper No es va poder analitzar un registre de estil personalitzatCompte de pagament LoadDiagnostics.Issues per a les inscripcions de reparació relacionades amb l’estil.
Manca de cadenes compartides en un fitxer carregatSharedStringTableXmlMapper Encontrat una taula de cadenes compartida corrompudaActivació 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

ClasseDescripció
WorkbookXmlMapperLlegeix/escriu xl/workbook.xml
WorksheetXmlMapperLlegeix/escriu parts XML per pàgina
SharedStringTableXmlMapperLlegeix/escriu xl/sharedStrings.xml
StylesheetXmlMapperLlegeix/escriu xl/styles.xml
XmlParsingExceptionArrossegat en fallades d’anàlisi XML irrecuperables
 Català