Lavorare con XML Processing

Lavorare con XML Processing

Lavorare con l’elaborazione di XML

Aspose.Cells FOSS per C++ utilizza un leggero livello interno XML per leggere e scrivere le parti Open XML che compongono un file XLSX. Le classi XmlDocument, XmlElement e XmlAttribute costituiscono il nucleo di questo livello.


Caricamento di un documento XML

Usa XmlDocument::Load per analizzare una stringa o un file XML nell’albero del documento in memoria:

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

Creazione e salvataggio di XML

Usa XmlDocument::Build per costruire programmaticamente un documento XML, e XmlDocument::SaveToUtf8 per serializzarlo nuovamente in una stringa UTF-8:

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

Scorrere gli elementi

XmlElement fornisce un accesso leggero basato su handle ai valori degli elementi, ai figli e agli attributi. Gli elementi costruiti di default restituiscono IsNull() == true, che può essere usato come un controllo null sicuro:

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

Lavorare con gli attributi

XmlAttribute fornisce l’accesso alle coppie nome e valore degli attributi su un elemento. Usa XmlAttribute::MakeAttribute(name, value) per creare nuovi attributi:

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

Mapper interni XML

La libreria utilizza classi mapper dedicate per convertire gli oggetti modello del foglio di calcolo in memoria da e verso le loro rappresentazioni XML. Queste sono interne al livello di serializzazione:

Classe MapperResponsibility
WorkbookXmlMapperLegge e scrive la parte delle relazioni della cartella di lavoro
WorksheetXmlMapperLegge e scrive le singole parti XML del foglio di lavoro
StylesheetXmlMapperLegge e scrive la parte degli stili
SharedStringTableXmlMapperLegge e scrive la tabella delle stringhe condivise

Ogni mapper espone i metodi Read e Write. Questi vengono chiamati internamente da XlsxWorkbookSerializer e non sono destinati all’uso diretto nel codice dell’applicazione.


Gestione degli errori

Gli errori di parsing XML lanciano XmlParsingException. Cattura questa eccezione quando carichi XML non attendibili o malformati:

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

Suggerimenti e migliori pratiche

  • Verifica XmlElement::IsNull() prima di accedere ai dati dell’elemento — gli elementi nei percorsi mancanti restituiscono un handle nullo.
  • Usa XmlDocument::SaveToUtf8() per ottenere una stringa serializzata per il debug o la registrazione dello stato intermedio di XML.
  • Non istanziare le classi mapper (WorkbookXmlMapper, WorksheetXmlMapper, ecc.) direttamente nel codice dell’applicazione — usa Workbook::Save e Workbook(filePath) invece.
  • XmlParsingException viene sollevato su XML malformato; avvolgi sempre i caricamenti esterni di XML in un blocco try/catch.

Problemi comuni

ProblemaCauseCorrezione
IsNull() restituisce trueElemento non trovato nel percorso previstoVerifica la struttura di XML prima dell’attraversamento
XmlParsingException al caricamentoMalformato o non-UTF-8 XMLConvalida l’input XML prima di passarlo a Load
L’output del mapper differisce dall’inputMutazione del modello prima del salvataggioAssicurati che tutte le modifiche al modello siano confermate prima di chiamare Save

Riepilogo API Reference

Classe/MetodoDescrizione
XmlDocument::Load(content)Analizza una stringa XML
XmlDocument::Build()Costruisci un documento programmaticamente
XmlDocument::SaveToUtf8()Serializza il documento in una stringa UTF-8
XmlElement::IsNull()Verifica se l’handle dell’elemento è valido
XmlElement::GetValue()Ottieni il contenuto testuale dell’elemento
XmlElement::GetAttributes()Ottieni la raccolta di attributi
XmlAttribute::IsNull()Verifica se l’handle dell’attributo è valido
XmlAttribute::MakeAttribute(name, value)Crea un nuovo handle dell’attributo
XmlParsingExceptionGenerato su input XML malformato
WorksheetXmlMapperWorksheet interno XML lettura/scrittura
WorkbookXmlMapperWorkbook interno XML lettura/scrittura

Vedi anche

 Italiano