Робота з обробкою XML

Робота з обробкою XML

Файли XLSX зберігають свої дані в XML-частках всередині OPC пакету. Aspose.Cells FOSS для .NET висвітлює шар аналізу і серіалізації XML через чотири класи маперів: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, і StylesheetXmlMapper.Кожен мапер реалізує обидва. Read і Write Операції для відповідної частини XML. Це внутрішні інфраструктурні API більшість коду додатків працює повністю через Workbook і Worksheet об’єкти.


Класи XML-мапера

Кожен XML-мапер відповідає за одну частину XLSX структури:

MapperXML-частинаResponsibility
WorkbookXmlMapperxl/workbook.xmlМетадані на рівні робочого книжка, посилання до листів, визначені імена
WorksheetXmlMapperxl/worksheets/sheetN.xmlПодані клітин, формули, гіперзв’язки, умовні формати, валідація даних
SharedStringTableXmlMapperxl/sharedStrings.xmlСпільна таблиця струн для дедуплікованих значень стрингів
StylesheetXmlMapperxl/styles.xmlСтилі клітин, шрифти, заповнення, межі, формати номерів

Кожен мапер показує два методи Read і Write покликані завантаженням бібліотеки та збереженнями трубопроводів відповідно.


XmlParsingException (виняток перегляду)

XmlParsingException викидається, коли мапер зустрічає деформацію XML, яку не можна відремонтувати. Вона піднімається до WorkbookLoadException в ієрархії помилок, коли недійсності відбуваються під час аналізу 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);
}

Поради та найкращі практики

  • Набір TryRepairXml = true в LoadOptions для включення шляху аналізу, що не допускає помилок.
  • Catch XmlParsingException Крім того, WorkbookLoadException при обробці файлів з зовнішніх систем, які можуть створювати неформальний XML.
  • Класи XML-маперів не призначені для інстанціації за допомогою коду додатку вони викликаються автоматично під час: Workbook будівництво та Save().
  • Якщо вам потрібно оглянути сирий вміст XML для діагностики, витягніть XLSX як ZIP і перевірте відповідні частини XML безпосередньо.

Загальні питання

IssueCauseВиправлення
XmlParsingException на завантаженніНевиправданий XML в одній з частин XLSXНабір TryRepairXml = true в LoadOptions
Відсутність стилів після поїздки в ту та іншу сторону.StylesheetXmlMapper не вдалося аналізувати запис стилю за замовленнямCheck LoadDiagnostics.Issues для записів щодо ремонту, пов’язаних зі стилем;
Спільні ланцюжки, що відсутні в завантаженому файліSharedStringTableXmlMapper знайшов пошкоджену таблицю спільних струнEnable TryRepairXml; перевірте, що оригінальний файл має дійсний код. xl/sharedStrings.xml

FAQ

Чи можу я реалізувати свій власний XML-мапер?

Класи XML-маперів є закритою внутрішньою інфраструктурою. Запропоновані мапери не підтримуються в поточній поверхні API.

Чому є окрема SharedStringTableXmlMapper?

Спеціфікація OOXML розділяє значення струн у загальну таблицю стрингів (xl/sharedStrings.xmlКартатор самостійно обробляє читання та записання цієї таблиці.

Does TryRepairXml = true Виправити всі проблеми XML?

TryRepairXml Структурно дійсний, але семантично несумісний XML (наприклад, порушені посилання на формулу) все ще може викликати: XmlParsingException.


Реферат на API

ClassDescription
WorkbookXmlMapperЧитає/пише xl/workbook.xml
WorksheetXmlMapperЧитає/пише частини XML на лист
SharedStringTableXmlMapperЧитає/пише xl/sharedStrings.xml
StylesheetXmlMapperЧитає/пише xl/styles.xml
XmlParsingExceptionНездосконалені помилки аналізу XML

See Also

 Українська