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 klasa | Odgovornost |
|---|---|
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 kodaWorkbook::Savei u članku 1.Workbook(filePath)umjesto toga. XmlParsingExceptionje bačen na malformirani XML; uvijek zavojite vanjske opterećenja XML u blok pokušaja/prikupljanja.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
IsNull() vraća true | Nepostojeći element na očekivanoj stazi | Provjeriti XML strukturu prije prelaska |
XmlParsingException na teret | XML koji nije UTF-8 ili je neispravno oblikovan | Potvrdite XML ulaz prije prelaska na: Load |
| Izlaz mapera razlikuje se od ulaza | Mutanje modela prije pohranjivanja | Završite sve promjene modela prije poziva. Save |
Svrha referentnog API-a
| Sredstva za ispitivanje i provedbu | Opisivanje |
|---|---|
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 |
XmlParsingException | Bačen na neispravno XML ulazak |
WorksheetXmlMapper | Interni radni list XML za čitanje/pisanje |
WorkbookXmlMapper | Interni radni list XML za čitanje/pisanje |