Werken met XML Processing

Werken met XML Processing

Werken met XML Processing

Aspose.Cells FOSS voor C++ gebruikt een lichtgewicht interne XML laag om de Open XML onderdelen die een XLSX-bestand vormen te lezen en te schrijven. De XmlDocument, XmlElement en XmlAttribute klassen vormen de kern van deze laag.


Laden van een XML document

Gebruik XmlDocument::Load om een XML string of bestand te parseren naar de in-memory documentboom:

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

Opbouwen en opslaan van XML

Gebruik XmlDocument::Build om een XML document programmatisch te construeren, en XmlDocument::SaveToUtf8 om het te serialiseren naar een UTF-8 string:

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

Elementen doorlopen

XmlElement biedt lichtgewicht, op handles gebaseerde toegang tot elementwaarden, kinderen en attributen. Standaard-geconstrueerde elementen retourneren IsNull() == true, die kan worden gebruikt als een veilige null-controle:

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

Werken met attributen

XmlAttribute biedt toegang tot naam-waardeparen van attributen op een element. Gebruik XmlAttribute::MakeAttribute(name, value) om nieuwe attributen aan te maken:

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

Interne XML Mappers

De bibliotheek gebruikt speciale mapper-klassen om spreadsheet-modelobjecten in het geheugen te converteren van en naar hun XML-representaties. Deze zijn intern voor de serialisatielaag:

Mapper-klasseResponsibility
WorkbookXmlMapperLeest en schrijft het werkboekrelatie-deel
WorksheetXmlMapperLeest en schrijft individuele werkblad XML onderdelen
StylesheetXmlMapperLeest en schrijft het stijlen-deel
SharedStringTableXmlMapperLeest en schrijft de gedeelde strings-tabel

Elke mapper exposeert Read en Write methoden. Deze worden intern aangeroepen door XlsxWorkbookSerializer en zijn niet bedoeld voor direct gebruik in toepassingscode.


Foutafhandeling

XML-parsefouten werpen XmlParsingException. Vang deze uitzondering op bij het laden van onbetrouwbare of misvormde XML:

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

Tips en best practices

  • Controleer XmlElement::IsNull() voordat u elementgegevens benadert — elementen op ontbrekende paden geven een null-handle terug.
  • Gebruik XmlDocument::SaveToUtf8() om een geserialiseerde string te verkrijgen voor debuggen of het loggen van de tussenliggende XML-status.
  • Instantieer mapper-klassen (WorkbookXmlMapper, WorksheetXmlMapper, enz.) niet rechtstreeks in de toepassingscode — gebruik in plaats daarvan Workbook::Save en Workbook(filePath).
  • XmlParsingException wordt gegooid bij een onjuiste XML; wikkel externe XML-loads altijd in een try/catch-blok.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
IsNull() geeft true terugElement niet gevonden op het verwachte padControleer XML structuur vóór traverseren
XmlParsingException bij het ladenMisvormd of niet-UTF-8 XMLValideer de invoer XML voordat je deze doorgeeft aan Load
Mapper-uitvoer verschilt van invoerModelmutatie vóór opslaanZorg ervoor dat alle modelwijzigingen zijn gecommit voordat je Save aanroept

API Reference Samenvatting

Klasse/MethodeBeschrijving
XmlDocument::Load(content)Parse een XML string
XmlDocument::Build()Construeer een document programmatisch
XmlDocument::SaveToUtf8()Serialiseer het document naar een UTF-8 string
XmlElement::IsNull()Controleer of de element handle geldig is
XmlElement::GetValue()Haal de tekstinhoud van het element op
XmlElement::GetAttributes()Haalt de attribuutcollectie op
XmlAttribute::IsNull()Controleer of de attribute handle geldig is
XmlAttribute::MakeAttribute(name, value)Maak een nieuwe attribute handle aan
XmlParsingExceptionWordt gegooid bij misvormde XML invoer
WorksheetXmlMapperIntern werkblad XML lezen/schrijven
WorkbookXmlMapperIntern werkboek XML lezen/schrijven

Zie ook

 Nederlands