.NET'de XML İşleme ile Çalışma Nasıl Yapılır

.NET'de XML İşleme ile Çalışma Nasıl Yapılır

XLSX dosyaları verilerini bir OPC ZIP paketi içinde XML parçalarında depolamaktadır. Aspose.Cells .NET bu bilgileri dört XML mapper sınıfı aracılığıyla işler: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,ve StylesheetXmlMapper.Bu sınıfları anlamak, analiz başarısızlıklarını teşhis etmenize ve yanlış yükleyici yüklemeyi doğru bir şekilde yapılandırmanıza yardımcı olur. dotnet add package Aspose.Cells_FOSS.

Adım adım rehberlik

Adım 1: Paketi Kurun

dotnet add package Aspose.Cells_FOSS

Adım 2: Namespace İndir

using Aspose.Cells_FOSS;

3. Adım: XML Mapper Sorumluluklarını Anlamak

Her bir kartlama makinesi XLSX yapısının bir XML parçasıyla çalışır:

HaritayıXML BölümleriHandles Hakkında
WorkbookXmlMapperxl/workbook.xmlİş kitabı metadata, sayfa listesi, tanımlanmış isimler
WorksheetXmlMapperxl/worksheets/sheetN.xmlHücre verileri, formülleri, hyperlinks, validasyonları, koşullu formatlar
SharedStringTableXmlMapperxl/sharedStrings.xmlDe-Duplicated String değerleri
StylesheetXmlMapperxl/styles.xmlHücre stilleri, fontlar, doldurular ve sınırları

Bu kartlar otomatik olarak arama sırasında Workbook İnşaat ve Save().Uygulama kodunda doğrudan bunları istanbulda kullanmazsınız.


Adım 4: XmlParsingException kullanın

XmlParsingException Bir kartlama yazılımı düzeltilemeyecek hatalı XML ile karşılaştığında atılır. TryRepairXml = true in içinde LoadOptions Haritayı harekete geçiren hataya toleranslı bir yol açmak için.

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);
}

Adım 5: XML sorunlarını tanımlamak için LoadDiagnostics kullanın

Başarılı bir testten sonra, kontrol edin LoadDiagnostics.Issues için DiagnosticEntry XML’in hangi onarımları uygulandığını ve herhangi birinin veri kaybına neden olup olmadığını anlamak için kayıtlar.

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}");
}

Yaygın Sorunlar ve Çözümler

XmlParsingException Hatta birlikte TryRepairXml = true. XML, hataya karşı dayanıklı analizörün onu kurtaramayacağı kadar kötü biçimde şekillendirilmiştir.Bu, sözde geçersiz XML üreten standart dışı araçlar tarafından oluşturulan dosyalarda olabilir.

Yükleme sonrası stil eksikliği. OYUN StylesheetXmlMapper Belki bir yolsuzlukla karşılaşmışsınızdır. xl/styles.xml.kontrol et LoadDiagnostics.Issues Stillerle ilgili kodlu girişler için ve DataLossRisk = true etkilenen hücreler için.

Paylaşılan diziler boş hücreler olarak görünür. Yolsuzluk xl/sharedStrings.xml Paylaşılan satır tablosunu referanslayan hücreleri boş olarak göstermeye neden olabilir. TryRepairXml Geri dönüşüm denemesi yapılır.

Sık Sorulan Sorular

XML Mapper kullanabilir miyim?

XML mapper sınıfları kapalı iç altyapı ve uzantılı olarak tasarlanmamıştır.

Neden bu SharedStringTableXmlMapper Ayrılık mı ?

OOXML özellikleri, tekrarlanan satır değerlerini bir dosya boyutunu azaltmak için paylaşılan bir satırı tablosuna ayırır.

yapıyor TryRepairXml XML sorunu çözmek için neler yapmalıyız?

TryRepairXml Kapalı olmayan elementler, eksik isim alanları ve kısaltılmış atribüt değerleri gibi kurtarılabilir hataları ele alır. Yapısal olarak geçerli ancak semantik açıdan uyumsuz XML (örneğin var olmayan hücrelere referanslı formül tokenleri) hala hata olmadan analiz eder.

Bu da

 Türkçe