Práce s XML zpracováním
Práce s XML zpracováním
XLSX soubory ukládají své údaje v částech XML uvnitř balíčku OPC. Aspose.Cells FOSS pro .NET odhaluje vrstvu analýzy a serializace XML prostřednictvím čtyř mapových tříd: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,a) StylesheetXmlMapper.Každý mapovatel provádí obě. Read a) Write Tyto jsou interní infrastruktury API většina aplikačního kódu funguje zcela prostřednictvím Workbook a) Worksheet předměty.
Třídy mapování XML
Každý XML mapér je zodpovědný za jednu část XLSX struktury:
| Maper | Část XML | Odpovědnost |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metadata na úrovni pracovního seznamu, odkazy do listů a definované názvy |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Údaje o buňkách, vzorce, hypertextové odkazy, podmíněné formáty, ověřování údajů |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Sdílená tabulka řetězců pro odduplikované hodnoty řety |
StylesheetXmlMapper | xl/styles.xml | Stylové buňky, písma, vyplnění, hranice a číselné formáty |
Každý mapovatel ukazuje dvě metody Read a) Write vyvolává zatížení knihovny a šetří potrubí.
XmlParsingException
XmlParsingException je vržen, když mapper setkává s nesprávně formovaným XMLem, který nelze opravit. Je zvolen před WorkbookLoadException v hierarchii chyb, pokud selhání nastane během 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 nejlepší postupy
- Sestavení:
TryRepairXml = truev .LoadOptionsumožnit mapování chyb tolerující dráhy. - Rybíček
XmlParsingExceptionKromě:WorkbookLoadExceptionpři manipulaci s soubory z externích systémů, které mohou vyvolat chybně formovaný XML. - XML mapper třídy nejsou zamýšleny být instanciated aplikačním kódem jsou automaticky volány během
Workbookstavebnictví aSave(). - Pokud potřebujete zkontrolovat surový obsah XML pro diagnostiku, extrahujte XLSX jako ZIP a přímo zkoumejte příslušné části XML.
Obvyklé problémy
| Výše: | Příčina: | Opravy |
|---|---|---|
XmlParsingException na nákladu | Zneuformovaný XML v jedné z částí XLSX | Sestavení: TryRepairXml = true v . LoadOptions |
| Chybějící styly po cestě zpět a zpět | StylesheetXmlMapper nemohl analyzovat záznam s vlastním stylem | Ček. LoadDiagnostics.Issues pro položky opravy související se stylem, |
| Sdílené řetězce chybí v načteném souboru | SharedStringTableXmlMapper Našel zkažený sdílený řetězový tabulky | Povolení TryRepairXml; ověřit, zda původní soubor má platnou xl/sharedStrings.xml |
FAQ
Můžu implementovat svůj vlastní XML maper?
XML mapperové třídy jsou uzavřené vnitřní infrastruktura. Custom mappers nejsou podporovány ve stávajícím API povrchu.
Proč je tam oddělená? SharedStringTableXmlMapper?
Specifikace OOXML odděluje hodnoty řetězců do sdílené tabulky řety (xl/sharedStrings.xmlMapper zpracovává čtení a psaní této tabulky nezávisle na sobě.
- Ano. TryRepairXml = true Vyřešit všechny problémy s XML?
TryRepairXml Structurálně platné, ale semanticky nesouladné XML (např. zlomené odkazy na vzorce) může stále způsobit: XmlParsingException.
Souhrnná referenční informace API
| Třída | Popis: |
|---|---|
WorkbookXmlMapper | Čtení/psaní xl/workbook.xml |
WorksheetXmlMapper | Číst/psaní částí XML na listy |
SharedStringTableXmlMapper | Čtení/psaní xl/sharedStrings.xml |
StylesheetXmlMapper | Čtení/psaní xl/styles.xml |
XmlParsingException | Nevyřešitelné selhání v analýze XML |