العمل مع XML Processing
العمل مع XML Processing
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 يوفر الوصول الخفيف القائم على المقبض لقيم العنصر والأطفال والسمات. تعود العناصر التي تم إنشاؤها الافتراضيًا. 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 throw XmlParsingException.التقاط هذه الاستثناء عند تحميل XML غير موثوق به أو معطوفة:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}نصائح وأفضل الممارسات
- التحقق
XmlElement::IsNull()قبل الوصول إلى بيانات العنصر العناصر في المسارات المفقودة تعيد معالجة null. - استخدام
XmlDocument::SaveToUtf8()للحصول على سلسلة تسلسلية لتصحيح أو تسجيل حالة XML الوسيطة. - لا تحرك فئات خريطة الخرائط (
WorkbookXmlMapper,WorksheetXmlMapper,، إلخ) مباشرة في استخدام رمز الطلبWorkbook::SaveوWorkbook(filePath)بدلاً من ذلك. XmlParsingExceptionيتم إلقاء على XML غير المنشأ؛ دائماً لف حمولات XML الخارجية في كتلة محاولة/مساعدة.
القضايا المشتركة
| القضية | السبب | إصلاح |
|---|---|---|
IsNull() يعود true | العنصر غير موجود في المسار المتوقع | التحقق من هيكل XML قبل البحث |
XmlParsingException في الحمل | XML غير متشكل أو غير UTF-8 | تأكيد إدخال XML قبل الانتقال إلى Load |
| خروج الخريطة يختلف عن المدخلات | التحولات في النموذج قبل الحفاظ عليه | تأكد من أن جميع تغييرات النموذج قد تم التعهد بها قبل الاتصال. Save |
إشارة API
| الفئة/الطريقة | وصف |
|---|---|
XmlDocument::Load(content) | تحليل سلسلة XML |
XmlDocument::Build() | بناء مستند برمجياً |
XmlDocument::SaveToUtf8() | تسلسل المستند إلى سلسلة UTF-8 |
XmlElement::IsNull() | تحقق من صحة التعامل مع العنصر |
XmlElement::GetValue() | احصل على محتوى النص من العنصر |
XmlElement::GetAttributes() | احصل على مجموعة السمات |
XmlAttribute::IsNull() | تحقق من صحة العنوان الخاص بالسم |
XmlAttribute::MakeAttribute(name, value) | إنشاء خيط سمة جديد |
XmlParsingException | تم إلقاءها على مدخل XML معطى الصيغة |
WorksheetXmlMapper | ورقة عمل داخلية XML للقراءة/الكتابة |
WorkbookXmlMapper | كتاب عمل داخلي XML للقراءة/الكتابة |