Работа с 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 предоставя достъп до двойки от имена и стойности на атрибути в елемент. Използва се XmlAttribute::MakeAttribute(name, value) за създаване на нови атрибути:

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

Вътрешни XML мапъри

Библиотеката използва специални класове за мапиране, за да преобразува в паметта обектите на таблични модели към и от техните XML представления. Те са вътрешни към слоя за сериализация:

Класа на картографитеОтговорност
WorkbookXmlMapperЧете и пише частта за връзките в работната книга.
WorksheetXmlMapperЧете и пише отделни части на XML-програмата
StylesheetXmlMapperЧете и пише стиловата част.
SharedStringTableXmlMapperЧете и пише споделена таблица от струни.

Всеки картограф разкрива Read и в) Write Тези методи се наричат вътрешно от XlsxWorkbookSerializer и не са предназначени за пряка употреба в кода на приложението.


Управление на грешките

XML грешки при анализиране на изброените данни XmlParsingException.За да се види изключението при зареждане на недоверен или неправилно форматиран XML:

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

Съвети и най-добри практики

  • Проверка. XmlElement::IsNull() преди достъп до данни на елемента елементи при липсващи пътища връщат нулева връзка.
  • Използване на: XmlDocument::SaveToUtf8() да получите сериализиран нисък за дебагиране или регистриране на междинно XML състояние.
  • Не инстанцирайте класове на мапърите (WorkbookXmlMapper, WorksheetXmlMapper, и т.н.) директно в кода на заявлението използване Workbook::Save и в) Workbook(filePath) Вместо това.
  • XmlParsingException се хвърля върху неправилно оформен XML; винаги опаковайте външни загрузки на XML в блок “try/catch”.

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

ИзданиеПричина за товаРемонтиране
IsNull() връща истинскоНе е намерен елемент на очаквания пътПроверка на XML структурата преди преминаване през текста
XmlParsingException на товарXML с неправилна форма или не-UTF-8Валидиране на въвеждането XML преди преминаване към Load
Изходът на картера се различава от входа.Мутация на модела преди съхранениеУверете се, че всички промени в модела са извършени преди обаждането. Save

Снимка на API референтна информация

Клас/методОписание на състоянието
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 книги за четене/написване

Вижте също:

 Български