Lucrarea cu procesare XML
Lucrarea cu procesare 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, și XmlAttribute Clasele formează nucleul acestui strat.
Încărcarea unui document XML
Utilizare: XmlDocument::Load pentru a analiza un șir XML sau un fișier în arborele documentelor din memorie:
#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>");Construirea și salvarea XML-ului
Utilizare: XmlDocument::Build pentru a construi un document XML în mod programatic; și XmlDocument::SaveToUtf8 pentru a serializa înapoi la un UTF-8 șir:
XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();Trecerea prin elemente
XmlElement oferă acces ușor pe bază de mâner la valorile elementelor, fiii și atributele. Elementele construite în mod implicit se întorc IsNull() == true, care poate fi folosit ca o verificare sigură a valorii:
XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
// Traverse children via GetAttributes
auto attrs = root.GetAttributes();
}Lucrarea cu atributele
XmlAttribute oferă acces la perechile de nume și valori ale atributului pe un element. Utilizarea XmlAttribute::MakeAttribute(name, value) pentru a crea noi atribute:
XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();Maperele XML interne
Biblioteca utilizează clase mapere dedicate pentru a converti obiecte de model în fișe de calcul din memorie la reprezentările XML ale acestora. Acestea sunt interne stratului de serializare:
| Clasa Mapper | Responsabilitate |
|---|---|
WorkbookXmlMapper | Citește și scrie partea relație din cartea de lucru |
WorksheetXmlMapper | Citeste si scrie partile XML ale fișei de lucru individuale |
StylesheetXmlMapper | Citeşte şi scrie partea stilurilor. |
SharedStringTableXmlMapper | Citește și scrie tabelul de șiruri partajate |
Fiecare cartograf expune Read și de: Write Acestea sunt numite intern de către XlsxWorkbookSerializer și nu sunt destinate utilizării directe în codul aplicației.
Gestionarea erorilor
Erori de analizare XML aruncarea XmlParsingException.Obține această excepție atunci când încărcați XML neîncredut sau formatat greșit:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}Sfaturi şi cele mai bune practici
- Verifică.
XmlElement::IsNull()înainte de a accesa datele elementului elementele la căile lipsă returnează o manipulare nulă. - Utilizare:
XmlDocument::SaveToUtf8()pentru a obține o șiră serializată pentru depurarea sau înregistrarea stării XML intermediare. - Nu instantiate clasele mapper (
WorkbookXmlMapper,WorksheetXmlMapper, etc.) direct în codul de cerere utilizareWorkbook::Saveși de:Workbook(filePath)În schimb. XmlParsingExceptioneste aruncat pe XML malformat; întotdeauna înfășurați încărcăturile externe XML într-un bloc de încercare/captare.
Probleme comune
| Numărul de date | Cauza | Fixare |
|---|---|---|
IsNull() returnează true | Element ne gasit la calea asteptata | Verificați structura XML înainte de traversare |
XmlParsingException în încărcare | XML formatat în mod defectuos sau fără UTF-8 | Validarea XML-ului de intrare înainte de trecere la Load |
| ieșirea mapper diferă de intrare | Mutația modelului înainte de salvare | Asigură-te că toate modificările modelelor sunt făcute înainte de a solicita Save |
Rezultatele de la data aplicării.
| Clasa/Metoda | Descriere: |
|---|---|
XmlDocument::Load(content) | Analiza unui șir XML |
XmlDocument::Build() | Construiți un document programatic |
XmlDocument::SaveToUtf8() | Serializarea documentului într-un șir UTF-8 |
XmlElement::IsNull() | Verificați dacă elementul de manipulare este valabil |
XmlElement::GetValue() | Obține conținutul de text al elementului |
XmlElement::GetAttributes() | Obține colectia de atribute |
XmlAttribute::IsNull() | Verificați dacă atributul este valid. |
XmlAttribute::MakeAttribute(name, value) | Crearea unui nou element de identificare a atributului |
XmlParsingException | Aruncat pe intrarea XML defectuoasă |
WorksheetXmlMapper | Folla de lucru internă XML citit/scris |
WorkbookXmlMapper | Cărți de lucru interne XML citit/scris |