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 dio | Odgovornost |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metapodatki na razini radne knjige, referenci za listove i definirani nazivi |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Sljedeći članakSvijetlo, s. 1. |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Zajednički niz za de-duplicirane vrijednosti niza. |
StylesheetXmlMapper | xl/styles.xml | Stvari ć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 = trueu (v)LoadOptionsda omogući mapper-ov pogrešno tolerantni parsing put. - Zlatno
XmlParsingExceptionuz:WorkbookLoadExceptionU 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:
Workbookizgradnja iSave(). - Ako trebate pregledati sirov XML sadržaj za dijagnostiku, izvlačite XLSX kao ZIP i ispitati relevantne dijelove XML-a izravno.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
XmlParsingException na teret | Neispravno oblikovano XML u jednom od dijelova XLSX-a | Sastavljeno TryRepairXml = true u (v) LoadOptions |
| Izostali stilovi nakon povratka | StylesheetXmlMapper nije mogao analizirati prilagođen stil zapisa | Čekaj. LoadDiagnostics.Issues za stavke o popravku vezane uz stil |
| Zajednički nizovi nedostaju u učitavanom datoteku | SharedStringTableXmlMapper naišao na pokvarenu zajedničku tablicu nizova | Omoguć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
| Razred | Opisivanje |
|---|---|
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 |
XmlParsingException | Bačen na nepovratne XML parse neuspjeha |