Travailler avec le traitement XML
Travailler avec le traitement 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,et XmlAttribute Les classes forment le cœur de cette couche.
Télécharger un document XML
Utiliser XmlDocument::Load pour parser une barre XML ou un fichier dans l’arbre de document en mémoire :
#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>");Création et économie de XML
Utiliser XmlDocument::Build - créer un document XML de manière programmée, et XmlDocument::SaveToUtf8 Pour le faire, il faut revenir sur un fil UTF-8 :
XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();Les éléments transitoires
XmlElement fournit un accès basé sur le manœuvre légère aux valeurs d’élément, enfants et attributs. retour des éléments de conception par défaut IsNull() == true,Ce qui peut être utilisé comme un contrôle null sûr :
XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
// Traverse children via GetAttributes
auto attrs = root.GetAttributes();
}Travailler avec des attributs
XmlAttribute fournit accès à l’attribution de noms et de paires de valeurs sur un élément. XmlAttribute::MakeAttribute(name, value) Pour créer de nouveaux attributs :
XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();Mapeurs XML internes
La bibliothèque utilise des classes de cartes dédiées pour convertir les objets de modèle dans la feuille de mémoire à et de leurs représentations XML. Ce sont intérieurs à la couche de série:
| Classement Mapper | Responsabilité |
|---|---|
WorkbookXmlMapper | Lire et écrire la partie relation du livre de travail |
WorksheetXmlMapper | Lire et écrire des parties XML individuelles de feuille de travail |
StylesheetXmlMapper | Lire et écrire la partie des styles |
SharedStringTableXmlMapper | Lire et écrire la table des lignes partagées |
Chaque carte expose Read et Write Les méthodes sont appelés internes par XlsxWorkbookSerializer ne sont pas destinées à l’utilisation directe dans le code d’application.
Gestion des erreurs
XML partage erreurs jeté XmlParsingException.Chaque cette exception lors de la charge d’un XML non fiable ou malformé:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}Conseils et meilleures pratiques
- Vérifier
XmlElement::IsNull()avant l’accès aux données d’élément – les éléments sur des chemins manquants retournent un manuel null. - Utiliser
XmlDocument::SaveToUtf8()Pour obtenir une ligne sérialisée pour débouler ou enregistrer un état XML intermédiaire. - Ne pas faire de l’écriture (
WorkbookXmlMapper,WorksheetXmlMapper, etc.) directement dans le code d’application — utilisationWorkbook::SaveetWorkbook(filePath)Au lieu de cela. XmlParsingExceptionest jeté sur XML malformé ; toujours enveloppez les charges XML externes dans un bloc de tentative/catch.
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
IsNull() Retourner la vérité | L’élément n’a pas été trouvé sur la voie attendue | Vérifier la structure XML avant de traverser |
XmlParsingException sur le chargement | XML malformé ou non-UTF-8 | Valider l’entrée XML avant de passer à Load |
| Le chiffre d’affaires diffère de l’entrée | Modèle de mutation avant sauvetage | Assurez-vous que toutes les modifications de modèle sont effectuées avant d’appeler Save |
Le résumé de référence API
| Classes / Méthodes | Description |
|---|---|
XmlDocument::Load(content) | Parse un XML string |
XmlDocument::Build() | Créer un document programmable |
XmlDocument::SaveToUtf8() | Sérialisez le document à une ligne UTF-8 |
XmlElement::IsNull() | Vérifier si le manuel d’élément est valide |
XmlElement::GetValue() | Obtenez le contenu du texte de l’élément |
XmlElement::GetAttributes() | Rendez-vous à la collection d’attributs |
XmlAttribute::IsNull() | Vérifier si l’attribut est valide |
XmlAttribute::MakeAttribute(name, value) | Créer un nouveau manuel d’attributs |
XmlParsingException | Résultat sur les entrées XML malformées |
WorksheetXmlMapper | Le tableau de travail XML read/write |
WorkbookXmlMapper | Livre de travail XML lecture/écriture |