XML प्रोसेसिंग के साथ काम करना
XML प्रोसेसिंग के साथ काम करना
XLSX फ़ाइलें अपना डेटा XML भागों में OPC पैकेज के अंदर संग्रहीत करती हैं। Aspose.Cells FOSS for .NET XML पार्सिंग और सीरियलाइज़ेशन लेयर को चार मैपर क्लासों के माध्यम से उजागर करता है: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, और StylesheetXmlMapper. प्रत्येक मैपर अपने संबंधित XML भाग के लिए Read और Write दोनों ऑपरेशन्स को लागू करता है। ये आंतरिक इन्फ्रास्ट्रक्चर API हैं — अधिकांश एप्लिकेशन कोड पूरी तरह से Workbook और Worksheet ऑब्जेक्ट्स के माध्यम से काम करता है।
XML मैपर क्लासेस
प्रत्येक XML मैपर XLSX संरचना के एक XML भाग के लिए ज़िम्मेदार है:
| Mapper | XML भाग | Responsibility |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | वर्कबुक-स्तर मेटाडेटा, शीट संदर्भ, परिभाषित नाम |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | सेल डेटा, सूत्र, हाइपरलिंक, शर्तीय स्वरूप, डेटा वैधता |
SharedStringTableXmlMapper | xl/sharedStrings.xml | डुप्लिकेशन हटाए गए स्ट्रिंग मानों के लिए साझा स्ट्रिंग टेबल |
StylesheetXmlMapper | xl/styles.xml | सेल शैलियाँ, फ़ॉन्ट, फ़िल, बॉर्डर, संख्या फ़ॉर्मेट |
प्रत्येक मैपर दो मेथड्स को उजागर करता है — Read और Write — जो क्रमशः लाइब्रेरी के लोड और सेव पाइपलाइन द्वारा बुलाए जाते हैं।
XmlParsingException
XmlParsingException तब फेंका जाता है जब एक मैपर ऐसे विकृत XML का सामना करता है जिसे ठीक नहीं किया जा सकता। यह त्रुटि पदानुक्रम में WorkbookLoadException से पहले उठाया जाता है जब विफलता विशेष रूप से XML पार्सिंग के दौरान होती है।
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)");
}
catch (XmlParsingException ex)
{
Console.WriteLine("XML parse error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Load error: " + ex.Message);
}सलाह और सर्वोत्तम प्रथाएँ
TryRepairXml = trueकोLoadOptionsमें सेट करें ताकि मैपर का त्रुटि-सहिष्णु पार्सिंग पाथ सक्षम हो सके।- बाहरी प्रणालियों से आने वाली फाइलों को संभालते समय जो विकृत XML उत्पन्न कर सकती हैं,
XmlParsingExceptionकोWorkbookLoadExceptionके अतिरिक्त पकड़ें। - XML मैपर क्लासेस को एप्लिकेशन कोड द्वारा इंस्टैंसिएट करने के लिए नहीं बनाया गया है — इन्हें
Workbookनिर्माण औरSave()के दौरान स्वतः कॉल किया जाता है। - यदि आपको निदान के लिए कच्चा XML कंटेंट निरीक्षण करने की आवश्यकता है, तो XLSX को ZIP के रूप में एक्सट्रैक्ट करें और सीधे संबंधित XML भागों को देखें।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
XmlParsingException लोड पर | XLSX भागों में से एक में विकृत XML | LoadOptions में TryRepairXml = true सेट करें |
| राउंड-ट्रिप के बाद शैलियाँ अनुपलब्ध | StylesheetXmlMapper कस्टम शैली रिकॉर्ड को पार्स नहीं कर सका | LoadDiagnostics.Issues में शैली-संबंधित मरम्मत प्रविष्टियों की जाँच करें |
| लोड की गई फ़ाइल में साझा स्ट्रिंग्स अनुपस्थित | SharedStringTableXmlMapper ने भ्रष्ट साझा स्ट्रिंग तालिका पाई | TryRepairXml सक्षम करें; सत्यापित करें कि मूल फ़ाइल में वैध xl/sharedStrings.xml है |
FAQ
क्या मैं अपना खुद का XML मैपर लागू कर सकता हूँ?
XML मैपर क्लासेज़ सीलबंद आंतरिक बुनियादी ढांचा हैं। वर्तमान API सतह में कस्टम मैपर्स समर्थित नहीं हैं।
एक अलग SharedStringTableXmlMapper क्यों है?
OOXML विशिष्टता स्ट्रिंग मानों को एक साझा स्ट्रिंग टेबल (xl/sharedStrings.xml) में विभाजित करती है ताकि वर्कबुक में दोहराए गए स्ट्रिंग्स को डिडुप्लिकेट किया जा सके। मैपर इस टेबल को स्वतंत्र रूप से पढ़ने और लिखने को संभालता है।
क्या TryRepairXml = true सभी XML समस्याओं को ठीक करता है?
TryRepairXml पुनर्प्राप्ति योग्य समस्याओं को संभालता है जैसे कि अनक्लोज़्ड एलिमेंट्स, गायब नेमस्पेसेस, और ट्रंकेटेड वैल्यूज़। संरचनात्मक रूप से वैध लेकिन अर्थ में असंगत XML (जैसे टूटे हुए फ़ॉर्मूला रेफ़रेंसेज़) अभी भी XmlParsingException का कारण बन सकते हैं।
API Reference सारांश
| क्लास | विवरण |
|---|---|
WorkbookXmlMapper | पढ़ता/लिखता xl/workbook.xml |
WorksheetXmlMapper | प्रति-शीट XML भाग पढ़ता/लिखता |
SharedStringTableXmlMapper | पढ़ता/लिखता xl/sharedStrings.xml |
StylesheetXmlMapper | पढ़ता/लिखता xl/styles.xml |
XmlParsingException | अपरिवर्तनीय XML पार्स विफलताओं पर फेंका जाता है |