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

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

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

Aspose.Cells FOSS for C++ uses a lightweight internal XML layer to read and write the Open XML parts that make up an XLSX file. The XmlDocument, XmlElement, і XmlAttribute класи становлять ядро цього шару.


Завантаження XML-документу

Використання XmlDocument::Load для аналізу XML-струн або файлу в дереві документів у пам’яті:

#include "aspose/cells_foss/XmlDocument.h"

using namespace Aspose::Cells_FOSS;

// Load from string content
XmlDocument doc;
doc.Load("<root><item key=\"a\">value</item></root>");

Створення та збереження XML

Використання XmlDocument::Build для програмного побудови документа XML, і XmlDocument::SaveToUtf8 для серіалізації назад до UTF-8-струнки:

XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();

Перехід через елементи

XmlElement забезпечує легкий доступ до елементів, дітей та атрибутів. Попередньо створені елементи повертаються. IsNull() == true, який може бути використаний як безпечний нуль-проверка:

XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
    // Traverse children via GetAttributes
    auto attrs = root.GetAttributes();
}

Робота з атрибутами

XmlAttribute надає доступ до пар імен та значень атрибутів на елементі. Use XmlAttribute::MakeAttribute(name, value) для створення нових атрибутів:

XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();

Внутрішні XML-мапері

Бібліотека використовує спеціальні класи маперів для перетворення об’єктів моделі табличного листа в пам’яті на їх представлення XML. Вони є внутрішнім складом серіалізації:

Клас MapperResponsibility
WorkbookXmlMapperЧитає і пише частину “Спілкування” в робочому книзі.
WorksheetXmlMapperЧитає і пише окремі частини XML-додатку.
StylesheetXmlMapperЧитає і пише стилі частини
SharedStringTableXmlMapperЧитає та записує таблицю спільних струн.

Кожний мапер показує: Read і Write Ці методи називаються внутрішньо методами: XlsxWorkbookSerializer і не призначені для прямого використання в коді додатків.


Обробка помилок

Помилки аналізу XML throw XmlParsingException.Зафіксуйте цей виняток при завантаженні недовірної або неправильно оформленої XML:

try {
    doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
    // Handle parse error
}

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

  • Check XmlElement::IsNull() перед доступом до даних елемента елементи на відсутніх шляхах повертають нуль.
  • Використання XmlDocument::SaveToUtf8() отримати серіалізований струн для дебагування або реєстрації проміжного стану XML.
  • Не інстанціювати класи маперів (WorkbookXmlMapper, WorksheetXmlMapper, і т.д.) безпосередньо в коді заявки використання Workbook::Save і Workbook(filePath) замість цього.
  • XmlParsingException викидається на деформаційованому XML; завжди загорнуйте зовнішні завантаження XML в блок try/catch.

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

IssueCauseВиправлення
IsNull() повертає trueЕлемент не знайдений на очікуваному шляхуПеревірка структури XML перед переходом
XmlParsingException на завантаженніНевиправдано оформлений або не UTF-8 XMLПеревірка вхідного XML перед переходом до Load
Вихід Mapper відрізняється від входуМутація моделі перед збереженнямПереконайтеся, що всі зміни моделі зроблені перед закликом. Save

Реферат на API

Клас/методDescription
XmlDocument::Load(content)Розгляд XML-струнки
XmlDocument::Build()Створення документа програмно
XmlDocument::SaveToUtf8()Серіалізація документу в UTF-8-струнку .
XmlElement::IsNull()Перевірка, чи є підручник елемента дійсним.
XmlElement::GetValue()Отримати текст елемента
XmlElement::GetAttributes()Отримати колекцію атрибутів
XmlAttribute::IsNull()Перевірка, чи є атрибутний посібник дійсним.
XmlAttribute::MakeAttribute(name, value)Створення нового атрибуту
XmlParsingExceptionВикинути на неправильно сформований вхід XML
WorksheetXmlMapperВнутрішній лист роботи XML для читання/писання
WorkbookXmlMapperВнутрішня робоча книжка XML читання/писання

See Also

 Українська