Rad s XML obradom

Rad s XML obradom

XLSX datoteke pohranjuju svoje podatke u XML dijelovima unutar OPC paketa. Aspose.Cells FOSS za .NET izložava sloj analize i serijalizacije XML-a kroz četiri maperske klase: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, i StylesheetXmlMapper.Svaki maper provodi oba. Read i u članku 1. Write To su interni APIs infrastrukture većina aplikacijskog koda radi u potpunosti kroz XML-u. Workbook i u članku 1. Worksheet predmeti.


XML maperice klase

Svaki XML maper je odgovoran za jedan XML dio XLSX strukture:

Mapper (mapač)XML dioOdgovornost
WorkbookXmlMapperxl/workbook.xmlMetapodatki na razini radne knjige, referenci za listove i definirani nazivi
WorksheetXmlMapperxl/worksheets/sheetN.xmlSljedeći članakSvijetlo, s. 1.
SharedStringTableXmlMapperxl/sharedStrings.xmlZajednički niz za de-duplicirane vrijednosti niza.
StylesheetXmlMapperxl/styles.xmlStvari ćelija, fontovi, popunjavanje, rublje, brojni formati

Svaki maper prikazuje dvije metode Read i u članku 1. Write potražnja za opterećenje biblioteke i štednje cijevi.


XmlParsingException

XmlParsingException je bačen kada mapper susreće malformirani XML koji ne može biti popravljen. To se podiže prije WorkbookLoadException u hijerarhiji grešaka kada se neuspjeh dogodi tijekom XML-ovog analiziranja.

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);
}

Savjeti i najbolje prakse

  • Sastavljeno TryRepairXml = true u (v) LoadOptions da omogući mapper-ov pogrešno tolerantni parsing put.
  • Zlatno XmlParsingException uz: WorkbookLoadException U slučaju da se u skladu s člankom 10. stavku 1. točka (a) i (b) Uredbe (EU) br. 1071/2013 ne primjenjuje, podnositelj zahtjeva može zatražiti od strane nadležnog tijela za provedbu postupka iz članka 11. stavka 2. točke (c) te prijedloga o izmjeni ili ukidanju tog pravila.
  • XML mapper klase nisu namijenjene da se instanciiraju aplikacijskim kodom automatski su pozvane tijekom: Workbook izgradnja i Save().
  • Ako trebate pregledati sirov XML sadržaj za dijagnostiku, izvlačite XLSX kao ZIP i ispitati relevantne dijelove XML-a izravno.

Zajednički problemi

IzdavanjeUzrokPopraviti
XmlParsingException na teretNeispravno oblikovano XML u jednom od dijelova XLSX-aSastavljeno TryRepairXml = true u (v) LoadOptions
Izostali stilovi nakon povratkaStylesheetXmlMapper nije mogao analizirati prilagođen stil zapisaČekaj. LoadDiagnostics.Issues za stavke o popravku vezane uz stil
Zajednički nizovi nedostaju u učitavanom datotekuSharedStringTableXmlMapper naišao na pokvarenu zajedničku tablicu nizovaOmogućiti TryRepairXml; provjeriti da originalna datoteka ima valjan xl/sharedStrings.xml

FAQ

Mogu li implementirati svoj XML mapper?

XML mapper klase su zapečaćena unutarnja infrastruktura. Custom mappers nisu podržani u trenutnom API površini.

Zašto postoji poseban SharedStringTableXmlMapper?

Specifikacija OOXML-a odvaja vrijednosti nizova u zajedničku tablicu (xl/sharedStrings.xmlU ovom slučaju, u skladu s člankom 6. stavkom 1. točka (a) točke (b) ovog članka, ako je potrebno, program za mapiranje mora biti uključen u tablicu.

Da li je? TryRepairXml = true riješiti sve XML probleme?

TryRepairXml Structurally valid, ali semantički neskladan XML (npr. slomljene formule referencije) još uvijek može uzrokovati: XmlParsingException.


Svrha referentnog API-a

RazredOpisivanje
WorkbookXmlMapperČita/piše xl/workbook.xml
WorksheetXmlMapperČita/piše XML dijelove po listu
SharedStringTableXmlMapperČita/piše xl/sharedStrings.xml
StylesheetXmlMapperČita/piše xl/styles.xml
XmlParsingExceptionBačen na nepovratne XML parse neuspjeha
 Hrvatski