كيفية العمل مع XML Processing في .NET

كيفية العمل مع XML Processing في .NET

يتم تخزين ملفات XLSX بياناتها في أجزاء XML داخل حزمة OPC ZIP. Aspose.Cells FOSS for .NET يعالج هذه من خلال أربعة فصول خريطة XML: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,و ، و StylesheetXmlMapper.فهم هذه الفصول يساعدك على تشخيص فشل التخفيف وتكوين الشحن المقاوم للخطأ بشكل صحيح. dotnet add package Aspose.Cells_FOSS.

خطوة بخطوة دليل

الخطوة 1: قم بتثبيت الحزمة

dotnet add package Aspose.Cells_FOSS

الخطوة 2: استيراد اسم الفضاء

using Aspose.Cells_FOSS;

الخطوة 3: فهم مسؤوليات خرائط XML

كل خريطة تتعامل مع جزء XML من هيكل XLSX:

خريطةXML جزءالتلاعب
WorkbookXmlMapperxl/workbook.xmlميتايات الكتاب، قائمة الورق، أسماء محددة
WorksheetXmlMapperxl/worksheets/sheetN.xmlالبيانات الخلوية، الصيغ، الروابط العليا، التحقق، تنسيقات مشروطة
SharedStringTableXmlMapperxl/sharedStrings.xmlقيمة الحبل المضاعف
StylesheetXmlMapperxl/styles.xmlأنماط الخلايا، الخطوط، ملء، الحدود

يتم استدعاء هذه المجلدات تلقائيا خلال Workbook البناء و Save().لا تقوم بتثبيتها مباشرة في رمز التطبيق.


الخطوة 4: التعامل مع XmlParsingاستثناء

XmlParsingException يتم إلقاءها عندما يلتقي خريطة XML غير المنحرفة التي لا يمكن تصحيحها. TryRepairXml = true في LoadOptions لتنشيط مسار التسامح الخاطئ في المجلد.

using Aspose.Cells_FOSS;

var opts = new LoadOptions
{
    TryRepairPackage = true,
    TryRepairXml = true,
};

try
{
    var wb = new Workbook("malformed.xlsx", opts);
    Console.WriteLine("Loaded: " + wb.Worksheets.Count + " sheet(s)");

    var diag = wb.LoadDiagnostics;
    if (diag.HasRepairs)
        Console.WriteLine("XML repairs applied. Data loss risk: " + diag.HasDataLossRisk);
}
catch (XmlParsingException ex)
{
    Console.WriteLine("Unrecoverable XML error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Load failed: " + ex.Message);
}

الخطوة 5: استخدام تشخيص الحمل لتحديد مشاكل XML

بعد التحميل الناجح، تحقق من LoadDiagnostics.Issues من أجل DiagnosticEntry تسجيلات لفهم ما هي إصلاحات XML التي تم تطبيقها وما إذا كان أي منها أدى إلى فقدان البيانات.

using Aspose.Cells_FOSS;

var opts = new LoadOptions { TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;

foreach (var entry in diag.Issues)
{
    Console.WriteLine($"[{entry.Severity}] {entry.Code}");
    Console.WriteLine($"  Message: {entry.Message}");
    Console.WriteLine($"  RepairApplied: {entry.RepairApplied}  DataLossRisk: {entry.DataLossRisk}");
}

مشكلات و تصحيحات مشتركة

XmlParsingException حتى مع TryRepairXml = true. XML مزعج لدرجة أن المضيف الذي يتحمل الأخطاء لا يستطيع إعادة تدويره.هذا يمكن أن يحدث مع الملفات التي تم إنشاؤها بواسطة أدوات غير قياسية تنتج XML غير قابلة للتصنيف.لا يوجد مسار استرداد لهذه المجلدات.

النمط يفتقر بعد الحمل. وَالْمُتَّقِينَ StylesheetXmlMapper ربما كان يواجه شخصاً فاسداً. xl/styles.xml.- التحقق LoadDiagnostics.Issues بالنسبة للمشاركات التي تحتوي على رمز مرتبط بالأساليب، و DataLossRisk = true للخلايا المتضررة.

الشرائح المشتركة تظهر كخلايا فارغة. الفاسد xl/sharedStrings.xml يمكن أن يسبب الخلايا التي تشير إلى جدول الشريط المشترك أن تصبح فارغة. TryRepairXml محاولة الانتعاش .

الأسئلة المتكررة

هل يمكنني تنفيذ خريطة XML مخصصة؟?

لا. تُحتوي فئات الخرائط XML على البنية التحتية الداخلية المغلقة ولا تم تصميمها للتمديد.

لماذا هو SharedStringTableXmlMapper منفصلة ؟?

تنفصل المواصفات OOXML عن قيم الصفوف المتكررة إلى جدول صفوف مشترك لتقليل حجم الملف.تتم إدارة القراءة والكتابة لهذا الجدول بشكل مستقل من البيانات الخلوية.

يُفعل TryRepairXml إصلاح جميع مشاكل XML؟?

TryRepairXml التعامل مع الأخطاء القابلة للتحلل مثل العناصر غير المغلقة، وتفتقر إلى مساحات الاسم، وقيم الخصائص المكسورة.سيتم إزالة XML صالحة بنية ولكنها غير متماسكة بشكل شيوعي (على سبيل المثال، علامات الصيغة التي تشير إلى الخلايا غير الموجودة) دون خطأ.

انظر أيضا

 العربية