Rad s XML obradom

Rad s XML obradom

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, i XmlAttribute klase čine jezgro ovog sloja.


Upisivanje XML dokumenta

Upotreba: XmlDocument::Load za analizu XML nizka ili datoteke u drvo dokumenta u memoriji:

#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>");

Izgradnja i čuvanje XML-a

Upotreba: XmlDocument::Build za programsko izraditi XML dokument, i XmlDocument::SaveToUtf8 da ga serijalizirati natrag u UTF-8 niz:

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

Prolazak kroz elemente

XmlElement pruža lagani pristup na temelju ručka vrijednostima elemenata, djeci i atributima. Podrazumijevani konstruirani elementi vraćaju se IsNull() == true, koji se može koristiti kao sigurna nula provjera:

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

Rad s atributima

XmlAttribute pruža pristup parovima imena i vrijednosti atributa na elementu. Use XmlAttribute::MakeAttribute(name, value) za stvaranje novih atributa:

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

Interni XML maperi

Biblioteka koristi namjenske maperske klase za pretvaranje objekata modela rasporednih lista u memoriji i iz njihovih XML predstavki. Oni su interni na sloju serijalizacije:

Mapper klasaOdgovornost
WorkbookXmlMapperČita i piše dio odnosa u radnom svesku.
WorksheetXmlMapperČita i piše pojedinačne dijelove XML radnog lista
StylesheetXmlMapperČita i piše dio stilova.
SharedStringTableXmlMapperČita i piše zajedničku tablicu nizova.

Svaki maperi otvaraju Read i u članku 1. Write To su metode koje se unutar kuće nazivaju: XlsxWorkbookSerializer i nisu namijenjeni za izravnu uporabu u kodu aplikacije.


Upravljanje greškama

XML-ova pogreška u analizi bacanje XmlParsingException. Priključite ovu iznimku prilikom učitavanja neovjerljivog ili lošeg XML-a:

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

Savjeti i najbolje prakse

  • Čekaj. XmlElement::IsNull() Prije pristupa podacima o elementima elementi na nedostajućim putevima vraćaju nultu ručicu.
  • Upotreba: XmlDocument::SaveToUtf8() za dobivanje serijalnog nizka za debugging ili logiranje srednjeg XML stanja.
  • Ne instancizirati mapper klase (WorkbookXmlMapper, WorksheetXmlMapper, itd.) direktno u aplikaciji korištenje koda Workbook::Save i u članku 1. Workbook(filePath) umjesto toga.
  • XmlParsingException je bačen na malformirani XML; uvijek zavojite vanjske opterećenja XML u blok pokušaja/prikupljanja.

Zajednički problemi

IzdavanjeUzrokPopraviti
IsNull() vraća trueNepostojeći element na očekivanoj staziProvjeriti XML strukturu prije prelaska
XmlParsingException na teretXML koji nije UTF-8 ili je neispravno oblikovanPotvrdite XML ulaz prije prelaska na: Load
Izlaz mapera razlikuje se od ulazaMutanje modela prije pohranjivanjaZavršite sve promjene modela prije poziva. Save

Svrha referentnog API-a

Sredstva za ispitivanje i provedbuOpisivanje
XmlDocument::Load(content)Proučavanje XML niza
XmlDocument::Build()Izgraditi dokument programski
XmlDocument::SaveToUtf8()Serijalizirati dokument u niz UTF-8
XmlElement::IsNull()Provjerite je li rukovodioci elemenata valjan.
XmlElement::GetValue()Dobijte tekstni sadržaj elementa
XmlElement::GetAttributes()Dobijte zbirku atributa
XmlAttribute::IsNull()Provjerite je li rukovodilac atributa valjan.
XmlAttribute::MakeAttribute(name, value)Stvaranje novog rukovodila atributa
XmlParsingExceptionBačen na neispravno XML ulazak
WorksheetXmlMapperInterni radni list XML za čitanje/pisanje
WorkbookXmlMapperInterni radni list XML za čitanje/pisanje

Također pogledajte:

 Hrvatski