Com treballar amb el processament XML en C++

Com treballar amb el processament XML en C++

Aspose.Cells FOSS for C++ includes a lightweight XML processing layer used internally for reading and writing Open XML parts. The XmlDocument, XmlElement, i XmlAttribute classes proporcionen accés programàtic a dades XML. Aquesta guia cobreix la càrrega de XML, el recorregut d’elements i la serialització de documents.

Guia de pas a pas

Pas 1: Prepara la construcció

cmake_minimum_required(VERSION 3.15)
project(XmlProcessing CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(XmlProcessing main.cpp)
target_link_libraries(XmlProcessing PRIVATE Aspose.Cells.Foss.Cpp)

Pas 2: Inclou els encabezaments

#include "aspose/cells_foss/XmlDocument.h"
#include "aspose/cells_foss/XmlElement.h"
#include "aspose/cells_foss/XmlAttribute.h"

using namespace Aspose::Cells_FOSS;

Pas 3: Carregar un document XML

Utilització: XmlDocument::Load per analitzar una cadena XML en l’arbre de document d’in-memory:

int main() {
    XmlDocument doc;
    doc.Load("<root><item key=\"a\">Hello</item><item key=\"b\">World</item></root>");
    return 0;
}

Pas 4: Comprovar si hi ha elements nuls

XmlElement Utilitza un model basat en la màquina Un element retornat d’una ruta mancant és nul. Sempre comprova que el sistema de correcció està complet. IsNull() abans d’accedir a les dades:

XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
    std::string val = root.GetValue();
}

Pas 5: Atributs transversals

Utilització: XmlElement::GetAttributes() Cada manipulador d’atributs exposa el seu nom i valor:

auto attrs = root.GetAttributes();
for (auto& attr : attrs) {
    bool isNull = attr.IsNull();
}

Pas 6: Serialitzar a cadena UTF-8

Utilització: XmlDocument::SaveToUtf8() per obtenir l’XML serialitzat:

std::string xml = doc.SaveToUtf8();

Pas 7: Manejar els errors de l’anàlisi

Wrap XmlDocument::Load en un bloc de prova/captura quan es tracta XML no fiable:

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

Problemes comuns i fixos

IsNull() torna a ser veritat inesperadament. La ruta d’element no existeix en el document. Verifica que l’estructura XML coincideix amb el esquema esperat abans de travessar.

XmlParsingException en càrrega L’entrada està malformada o conté entitats no suportades. Valideu l’XML amb una eina externa abans de passar-la a la pàgina web del servidor XML. Load.

SaveToUtf8() Retorna sortida inesperada. L’estructura del document va ser modificada després de la publicació d’una carta a l’entorn dels documents. Load.Verificar tots els intermèdiums. Build operacions completades correctament.

Atributs no trobats La recerca d’atributs és sensitiva a les cases. Verifica que el nom de l’atribut coincideix exactament amb la font XML.

Resultat buit de GetValue() Els nodes de text que contenen només espais blancs poden retornar una cadena buida. Comproveu l’XML brut per confirmar que l"element té contingut no-espais blancos.

Preguntes freqüents

La capa XML està destinada a l’ús d’aplicacions o només per a ús intern?

El XmlDocument, XmlElement, i XmlAttribute Les classes de mapper (WorkbookXmlMapper, WorksheetXmlMapper, etc.) són ajudants interns cridats per la XlsxWorkbookSerializer i no estan destinats a l’ús directe.

Puc construir un nou document XML des de zero?

Sí, utilitzeu-la. XmlDocument::Build per construir un document programàticament, després utilitzar XmlElement i de la XmlAttribute::MakeAttribute per afegir nodes.

Does XmlDocument Suporta les consultes XPath?

No. La implementació actual només proporciona la travessa de màquines d’elements; XPath no està compatible.

Què fa l’encriptació? SaveToUtf8() Produir?

La sortida és sempre XML codificada en UTF-8.<?xml version="1.0" encoding="UTF-8"?>) s’inclou en la producció.

Puc utilitzar-la? XmlDocument per llegir peces d’arxiu XLSX?

Les parts d’arxiu XLSX són gestionades internament per: XlsxWorkbookSerializer.No hi ha cap API pública per a extraure parts d’arxiu brut. Utilitzar Workbook per a totes les operacions de càrrega/salvament XLSX.

See Also

 Català