Εργασία με την επεξεργασία XML
Εργασία με την επεξεργασία 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,και XmlAttribute Οι τάξεις αποτελούν τον πυρήνα αυτού του στρώματος.
Κατεβάστε ένα έγγραφο XML
Χρησιμοποιήστε XmlDocument::Load Για να διαχωρίσετε μια γραμμή XML ή ένα αρχείο στο δέντρο εγγράφου μνήμης:
#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>");Κατασκευή και αποθήκευση XML
Χρησιμοποιήστε XmlDocument::Build να δημιουργήσετε ένα XML έγγραφο προγραμματικά, και XmlDocument::SaveToUtf8 Για να το στείλετε πίσω σε μια γραμμή UTF-8:
XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();Ταξιδεύοντας στοιχεία
XmlElement παρέχει ελαφρύ χέρι-based πρόσβαση σε τιμές στοιχείων, παιδιά και χαρακτηριστικά. επιστροφή προεπιλεγμένων κατασκευασμένων στοιχειών IsNull() == true, η οποία μπορεί να χρησιμοποιηθεί ως ασφαλές μηδενικό έλεγχο:
XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
// Traverse children via GetAttributes
auto attrs = root.GetAttributes();
}Εργασία με τα χαρακτηριστικά
XmlAttribute παρέχει πρόσβαση στην προσδιορισμός των ζευγών ονόματος και αξίας σε ένα στοιχείο. XmlAttribute::MakeAttribute(name, value) Δημιουργία νέων χαρακτηριστικών:
XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();Εσωτερική Χάρτη XML
Η βιβλιοθήκη χρησιμοποιεί αφιερωμένες τάξεις χαρτογράφου για να μετατρέψει αντικείμενα μοντέλου σε μνήμη διατύπωσης σε και από τις αντιπροσωπείες XML τους. Αυτά είναι εσωτερικά στο στρώμα σειριώσεως:
| Κλάση Χάρτης | Υπεύθυνη |
|---|---|
WorkbookXmlMapper | Διαβάζει και γράφει το τμήμα της σχέσης του βιβλίου εργασίας |
WorksheetXmlMapper | Διαβάστε και γράψτε μεμονωμένα τμήματα XML φύλλου εργασίας |
StylesheetXmlMapper | Διαβάζει και γράφει το κομμάτι των στυλ |
SharedStringTableXmlMapper | Διαβάστε και γράψτε το κοινό πίνακα γραμμών |
Κάθε χάρτης εκθέτει Read και Write Οι εν λόγω μέθοδοι ονομάζονται εσωτερικά από XlsxWorkbookSerializer Δεν προορίζονται για άμεση χρήση στον κώδικα εφαρμογής.
Λάθος χειρισμού
XML σφάλματα ρίχνει XmlParsingException.Πάρτε αυτή την εξαίρεση όταν φορτώνετε μη αξιόπιστο ή κακότυπο XML:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}Συμβουλές και βέλτιστες πρακτικές
- Ελέγξτε
XmlElement::IsNull()Πριν από την πρόσβαση στα στοιχεία δεδομένων - τα στοιχεία σε λείπουν δρόμους επιστρέφουν ένα μηδενικό χειριστήριο. - Χρησιμοποιήστε
XmlDocument::SaveToUtf8()για να αποκτήσετε μια σειρά γραμμών για την αποσύνδεση ή τη σύνδεσή σας μεσαία κατάσταση XML. - Δεν πρέπει να ανακαλύψετε τις κλάσεις (
WorkbookXmlMapper,WorksheetXmlMapper, κλπ.) απευθείας στον κωδικό εφαρμογής — χρήσηWorkbook::SaveκαιWorkbook(filePath)Αντί να. XmlParsingExceptionρίχνει σε κακότυπο XML. πάντα βυθίσει εξωτερικά φορτία XML σε ένα δοκιμαστικό / κλειστό μπλοκ.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
IsNull() Επιστρέφει Αληθινή | Το στοιχείο δεν βρέθηκε στο αναμενόμενο μονοπάτι | Ελέγξτε τη δομή XML πριν από την κρουαζιέρα |
XmlParsingException ΣΤΟ ΛΟΙΓ | Μειωμένο ή μη-UTF-8 XML | Εγκρίστε την εισαγωγή XML πριν περάσετε στο Load |
| Η παραγωγή του χάρτη διαφέρει από την εισαγωγή | Μοντέλο μετάλλαξης πριν από την αποθήκευση | Βεβαιωθείτε ότι όλες οι αλλαγές του μοντέλου γίνονται πριν από την κλήση Save |
Συνοπτική αναφορά API
| Τάξη / Μέθοδος | Περιγραφή |
|---|---|
XmlDocument::Load(content) | Εισαγωγή XML string |
XmlDocument::Build() | Δημιουργία ενός εγγράφου με προγραμματισμό |
XmlDocument::SaveToUtf8() | Σειρά το έγγραφο σε μια στήλη UTF-8 |
XmlElement::IsNull() | Ελέγξτε αν το στοιχείο χειρισμού είναι έγκυρο |
XmlElement::GetValue() | Αποκτήστε το περιεχόμενο του κειμένου της συσκευής |
XmlElement::GetAttributes() | Κάντε την συλλογή των χαρακτηριστικών |
XmlAttribute::IsNull() | Ελέγξτε αν η χειραγώγηση του χαρακτηρισμού είναι έγκυρη |
XmlAttribute::MakeAttribute(name, value) | Δημιουργία νέου χειριστή χαρακτηριστικών |
XmlParsingException | Σχετικά με την κακοποιημένη εισαγωγή XML |
WorksheetXmlMapper | Εσωτερικό φύλλο εργασίας XML ανάγνωση/εγγραφή |
WorkbookXmlMapper | Εσωτερικό βιβλίο εργασίας XML ανάγνωση/εγγραφή |