XML प्रोसेसिंग के साथ काम करना

XML प्रोसेसिंग के साथ काम करना

XML प्रोसेसिंग के साथ काम करना

Aspose.Cells C++ के लिए FOSS एक हल्के वजन की आंतरिक XML लेयर का उपयोग करता है ताकि XLSX फ़ाइल बनाते हुए Open XML भागों को पढ़ और लिख सके। 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 लौटाते हैं, जिसका उपयोग एक सुरक्षित null-जाँच के रूप में किया जा सकता है:

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 प्रतिनिधित्व में और उससे परिवर्तित किया जा सके। ये सीरियलाइज़ेशन लेयर के भीतर आंतरिक हैं:

मैपर क्लासResponsibility
WorkbookXmlMapperवर्कबुक रिलेशनशिप भाग को पढ़ता और लिखता है
WorksheetXmlMapperव्यक्तिगत वर्कशीट XML भागों को पढ़ता और लिखता है
StylesheetXmlMapperस्टाइल्स भाग को पढ़ता और लिखता है
SharedStringTableXmlMapperसाझा strings table को पढ़ता और लिखता है

प्रत्येक मैपर Read और Write मेथड्स उजागर करता है। इन्हें XlsxWorkbookSerializer द्वारा आंतरिक रूप से बुलाया जाता है और इन्हें एप्लिकेशन कोड में सीधे उपयोग के लिए अभिप्रेत नहीं किया गया है।


त्रुटि संभालना

XML पार्सिंग त्रुटियाँ 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 लोड्स को try/catch ब्लॉक में लपेटें।

सामान्य समस्याएँ

समस्याकारणसमाधान
IsNull() true लौटाता हैअपेक्षित पथ पर तत्व नहीं मिलाट्रैवर्सल से पहले XML संरचना की जाँच करें
लोड पर XmlParsingExceptionविकृत या गैर-UTF-8 XMLपास करने से पहले इनपुट XML को Load के लिए मान्य करें
मैपर आउटपुट इनपुट से भिन्न हैसेव करने से पहले मॉडल में परिवर्तनसभी मॉडल बदलाव कमिट हो चुके हैं, यह सुनिश्चित करें Save को कॉल करने से पहले

API Reference सारांश

क्लास/मेथडविवरण
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 पढ़ें/लिखें

यह भी देखें

 हिन्दी