Работа с обработкой XML

Работа с обработкой XML

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


Класы XML-маперов

Каждый XML-маппер отвечает за одну часть XLSX:

КартографистЧасть XMLОтветственность
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 чтобы включить ошибочно-терпимый путь анализа картера.
  • Поймать. XmlParsingException кроме: WorkbookLoadException при обработке файлов из внешних систем, которые могут создавать неформализованный XML.
  • Класы XML-маппера не предназначены для инстанцирования с помощью кода приложения они вызываются автоматически во время Workbook строительство и Save().
  • Если вам нужно проверить сырой XML-контент для диагностики, извлечь XLSX в качестве ZIP и изучить соответствующие части XML напрямую.

Общие проблемы

ВыпускПричина .Устранить
XmlParsingException нагруженныйНеправильно оформленный XML в одной из частей XLSXНабор TryRepairXml = true в . LoadOptions
Недостаток стилей после поездки в обратном направлении.StylesheetXmlMapper не удалось проанализировать заказ стиля записиПроверка . LoadDiagnostics.Issues для стилевых ремонтных записей.
Общие строки отсутствуют в загруженном файлеSharedStringTableXmlMapper столкнулся с испорченной совместной таблицей струнВключить TryRepairXml; проверять , что оригинальный файл имеет действительный xl/sharedStrings.xml

FAQ

Могу ли я реализовать свой собственный XML-картер?

Класы XML-маперов являются запечатанной внутренней инфраструктурой. Карты настраиваемых файлов не поддерживаются в текущей поверхности API.

Почему есть отдельный SharedStringTableXmlMapper?

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

- Да , да . TryRepairXml = true - Решить все проблемы XML?

TryRepairXml обрабатывает восстанавливаемые проблемы, такие как незакрытые элементы, отсутствующие пространства имен и отрезанные значения. Структурно действительный, но семантически непоследовательный XML (например, нарушенные ссылки на формулу) все еще может вызвать XmlParsingException.


Справочное резюме API

КлассОписание:
WorkbookXmlMapperЧитает/пишет xl/workbook.xml
WorksheetXmlMapperЧитает/пишет части XML на лист.
SharedStringTableXmlMapperЧитает/пишет xl/sharedStrings.xml
StylesheetXmlMapperЧитает/пишет xl/styles.xml
XmlParsingExceptionНевозможно восстановить ошибки анализа XML .
 Русский