Работа с XML обработка
Работа с XML обработка
XLSX файловете съхраняват данните си в XML части вътре в OPC пакет. Aspose.Cells FOSS за .NET излага слоя на разглеждане и сериализация на XML чрез четири класа: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, и StylesheetXmlMapper.Всеки картограф прилага и двете. Read и в) Write Това са вътрешни инфраструктурни API повечето кодове на приложенията работят изцяло чрез XML. Workbook и в) Worksheet обекти.
Класове на XML Mapper
Всеки XML мапър е отговорен за една част на XLSX структурата:
| Картировчик | XML част | Отговорност |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Метаданни на ниво работна книга, препратки към листове, дефинирани имена |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Данни за клетките, формули, хипервръзки, условни формати, валидиране на данни |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Обща таблица от нишки за дедупилирани стойности на ниши |
StylesheetXmlMapper | xl/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 mapper не са предназначени да бъдат инстанцирани от кода на приложението те се призовават автоматично по време на
Workbookстроителство иSave(). - Ако трябва да инспектирате суровото XML съдържание за диагностика, извлечете XLSX като ZIP и изследвайте съответните части на XML директно.
Общи проблеми
| Издание | Причина за това | Ремонтиране |
|---|---|---|
XmlParsingException на товар | Неправилно оформени XML в една от XLSX частите | Настройка TryRepairXml = true в) от LoadOptions |
| Липсващи модели след пътуване обратно | StylesheetXmlMapper Не можа да анализира персонализиран стил на записите | Проверка. LoadDiagnostics.Issues за стилово-основни поправки |
| Недостиг на споделени нишки в зареден файл | SharedStringTableXmlMapper Намерих корумпирана споделена таблица от последователни. | Позволяване на TryRepairXml; проверете дали оригиналният файл има валиден код. xl/sharedStrings.xml |
FAQ
Мога ли да внедря собствения си XML мапър?
Класовете XML mapper са запечатани вътрешни инфраструктури. Custom mappers не се поддържат в текущата API повърхност.
Защо има отделен? SharedStringTableXmlMapper?
Спецификацията OOXML разделя стойностите на реда в споделена таблица от редове (xl/sharedStrings.xmlКартировчикът обработва четенето и писането на тази таблица независимо.
- Да, нали? TryRepairXml = true да разрешим всички XML проблеми?
TryRepairXml Строежът на XML е много по-силен от този на другия, но семантично несъвместим XML (например счупени референции към формули) може да предизвика проблеми като: XmlParsingException.
Снимка на API референтна информация
| Класът | Описание на състоянието |
|---|---|
WorkbookXmlMapper | Чете/пише xl/workbook.xml |
WorksheetXmlMapper | Чете/пише XML части на лист |
SharedStringTableXmlMapper | Чете/пише xl/sharedStrings.xml |
StylesheetXmlMapper | Чете/пише xl/styles.xml |
XmlParsingException | Изхвърлени на непоправими XML провали в анализа |