Arbeta med XML-behandling
Arbeta med XML-behandling
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,och XmlAttribute Klasser bildar kärnan i detta lager.
Ladda upp ett XML-dokument
Användning XmlDocument::Load för att parsa en XML-sträng eller fil i minnesdokumentet:
#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>");Bygg och spara XML
Användning XmlDocument::Build att bygga ett XML-dokument programmatiskt, och XmlDocument::SaveToUtf8 för att serialisera det tillbaka till en UTF-8 sträng:
XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();Travelerande element
XmlElement ger lätt handled baserad tillgång till elementvärden, barn och attribut. standardkonstruerade element retur IsNull() == true, som kan användas som en säker noll-check:
XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
// Traverse children via GetAttributes
auto attrs = root.GetAttributes();
}Att arbeta med attribut
XmlAttribute ger tillgång till att tilldela namn och värdepar på ett element. XmlAttribute::MakeAttribute(name, value) Att skapa nya attribut:
XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();Internt XML-mappare
Biblioteket använder dedikerade mappar för att konvertera in-minnesmönsterobjekt till och från deras XML-representationer. Dessa är interna i serialiseringsskiktet:
| Mapper klass | Responsibility |
|---|---|
WorkbookXmlMapper | Läs och skriver arbetsbokens relation del |
WorksheetXmlMapper | Läser och skriver enskilda XML-delar i arbetsbladen |
StylesheetXmlMapper | Läser och skriver stycken del |
SharedStringTableXmlMapper | Läs och skriver den delade strängtabellen |
Varje kartong visar Read och Write Dessa kallas internalt av XlsxWorkbookSerializer och är inte avsedda för direkt användning i ansökningskod.
Felhantering
XML parsing fel kastar XmlParsingException.Fånga detta undantag när du laddar upp osäker eller felformad XML:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}Tips och bästa praxis
- Check
XmlElement::IsNull()innan du får tillgång till elementdata – objekt på saknade vägar returnerar en nollhandbok. - Användning
XmlDocument::SaveToUtf8()för att få en serialiserad sträng för debugging eller loggning mellan XML-status. - Inte att ta bort en kortare (
WorkbookXmlMapper,WorksheetXmlMapper, etc.) direkt i ansökningskod - användningWorkbook::SaveochWorkbook(filePath)I stället . XmlParsingExceptionkastas på felformad XML; alltid hänga externa XML-laddningar i en try/catch block.
Vanliga frågor
| Issue | Cause | Fixar |
|---|---|---|
IsNull() återvänder sann | Element som inte hittades på den förväntade vägen | Kontrollera XML-strukturen innan du passerar |
XmlParsingException på last | Förfalskad eller icke-UTF-8 XML | Validerar XML-input innan du går till Load |
| Mapper utgången skiljer sig från input | Modellmutation före spara | Se till att alla modeller ändras innan du ringer Save |
API Referens sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
XmlDocument::Load(content) | Skapa en XML string |
XmlDocument::Build() | Utformar ett dokument programmatiskt |
XmlDocument::SaveToUtf8() | Serierar dokumentet till en UTF-8 sträng |
XmlElement::IsNull() | Kontrollera om elementet är giltigt |
XmlElement::GetValue() | Få texten innehållet i elementet |
XmlElement::GetAttributes() | Få attributsamlingen |
XmlAttribute::IsNull() | Kontrollera om attributhantering är giltig |
XmlAttribute::MakeAttribute(name, value) | Skapa en ny attribut handledning |
XmlParsingException | Försvunnen på skadlig XML-input |
WorksheetXmlMapper | Internt arbetsblad XML läs/skriv |
WorkbookXmlMapper | Internal Workbook XML läs/skriv |