Работа с 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 книги за четене/написване |