Práca s XML spracovaním
Práca s XML spracovaním
Súbory XLSX ukladajú svoje údaje v častiach XML vo vnútri balíka OPC. Aspose.Cells FOSS pre .NET odhaľuje vrstvu analýzy a serializácie XML prostredníctvom štyroch mapových tried: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,a) StylesheetXmlMapper.Každý mapér implementuje obe funkcie . Read a) Write Tieto sú interné API infraštruktúry väčšina aplikácie kód funguje úplne prostredníctvom Workbook a) Worksheet predmety.
Triedy mapovačov XML
Každý XML mapper je zodpovedný za jednu časť XLSX štruktúry:
| Mapper (mapovač) | Časť XML | Zodpovednosť |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metadata na úrovni pracovného zoznamu, odkazy na hárky a definované názvy |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Údaje o bunkách, vzorce, hypertextové odkazy, podmienené formáty, overovanie údajov |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Zdieľaná tabuľka reťazcov pre de-duplikované hodnoty reťaze |
StylesheetXmlMapper | xl/styles.xml | Štyly buniek, písma, vyplnenie, hranice, číselné formáty |
Každý mapér zobrazuje dve metódy Read a) Write vyvolané zaťažením knižnice a šetrením potrubí.
XmlParsingException
XmlParsingException je vyhodený, keď mapper stretne nesprávny XML, ktorý nemôže byť opravený. Je vyzdvihnutý pred WorkbookLoadException v hierarchii chýb, ak sa zlyhanie vyskytne počas analýzy 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);
}Tipy a najlepšie postupy
- Sadzba
TryRepairXml = truev:LoadOptionsumožniť mapovačovi chybovo tolerantnú cestu analýzy. - Zlovák:
XmlParsingExceptionOkrem:WorkbookLoadExceptionpri manipulácii s súbormi z externých systémov, ktoré môžu produkovať nesprávne formované XML. - XML mapper triedy nie sú určené na instanciated aplikácie kódu oni sa automaticky vyzýva počas
Workbookstavebníctvo aSave(). - Ak potrebujete preveriť surový obsah XML na diagnostiku, vyťahujte XLSX ako ZIP a priamo preskúmajte príslušné časti XML.
Spoločné problémy
| Výstava | Príčina: | Oprava |
|---|---|---|
XmlParsingException na zaťaženie | Zlyšený XML v jednej z častí XLSX | Sadzba TryRepairXml = true v: LoadOptions |
| Chýbajúce štýly po výlete späť a naspäť | StylesheetXmlMapper Nedokázala sa analyzovať vlastný štýlový záznam | Prehľad LoadDiagnostics.Issues pre položky o opravách súvisiacich so štýlom, |
| Zdieľané reťazce chýbajú v načítanom súbore | SharedStringTableXmlMapper nájdená skorumpovaná zdieľaná struna tabuľky | Povolenie TryRepairXml; overte, či pôvodný súbor má platnú verziu. xl/sharedStrings.xml |
FAQ
Môžem implementovať vlastný XML mapper?
Triedy XML mapper sú uzavretá vnútorná infraštruktúra. Obvyklé mapery nie sú podporované v súčasnom API povrchu.
Prečo je tu samostatná SharedStringTableXmlMapper?
Špecifikácia OOXML oddeľuje hodnoty reťazcov do zdieľanej tabuľky reťaziek (xl/sharedStrings.xmlMapper spracováva čítať a písať túto tabuľku nezávisle.
Je to tak ? TryRepairXml = true vyriešiť všetky problémy s XML?
TryRepairXml spracováva obnoviteľné problémy, ako sú nezatvorené prvky, chýbajúce menové priestory a skrátené hodnoty. Štruktúrne platné ale semanticky nekonzistentné XML (napr. zlomené odkazy na vzorce) môže stále spôsobiť XmlParsingException.
Zhrnutie referenčného API
| Trieda | Opis: |
|---|---|
WorkbookXmlMapper | Číta/píšete xl/workbook.xml |
WorksheetXmlMapper | Číta/píšie časti XML na hárok |
SharedStringTableXmlMapper | Číta/píšete xl/sharedStrings.xml |
StylesheetXmlMapper | Číta/píšete xl/styles.xml |
XmlParsingException | Vhodené na nenapraviteľné poruchy analýzy XML |