c# - XML Deserialization -
मैं निम्नलिखित xml फ़ाइल
। & Lt; a & gt; & Lt; p & gt; & LT; ग & gt; VAL1 & lt; / ग & gt; & LT; घ & gt; val2 & lt; / घ & gt; & Lt; / p & gt; & Lt; p & gt; & LT; ग & gt; val3 & lt; / ग & gt; & LT; घ & gt; val4 & lt; / घ & gt; & Lt; / p & gt; & Lt; a & gt;
मैं इसे एक श्रेणी में डिसेरीलाइज़ करना चाहता हूं और मैं उनको बनाया वर्ग की वस्तुओं के साथ उन तक पहुँचना चाहता हूं। मैं सी # का उपयोग कर रहा हूँ मैं deserialize और वर्ग ' a
' ( & lt; a & gt;
टैग) के ऑब्जेक्ट में मूल्य प्राप्त करने में सक्षम हूं। लेकिन इस ऑब्जेक्ट से & lt; b & gt;
के मूल्य का उपयोग कैसे किया जाए?
[Serializable ()] [XmlRoot ( "एक")] सार्वजनिक वर्ग एक {[XmlArray ( "एक")] [XmlArrayItem ( "बी", typeof (: मैं निम्नलिखित कोडिंग किया बी))] सार्वजनिक बी [] बीबी {प्राप्त; सेट; }} [सीरियलज़ेबल ()] पब्लिक क्लास बी {[XmlElement ("c")] सार्वजनिक स्ट्रिंग c {get; सेट; } [XmlElement ("डी")] सार्वजनिक स्ट्रिंग डी {get; सेट; }} वर्ग कार्यक्रम {स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {a i = null; स्ट्रिंग पथ = "test.xml"; XmlSerializer serializer = नया XmlSerializer (टाइपफ (ए)); स्ट्रीमरिडर रीडर = नया स्ट्रीमरिडर (पथ); मैं = (ए) serializer। डायरेरिअलाइज़ (रीडर); reader.Close (); // मैं सभी बी टैग यहां कंसोल मुद्रित करना चाहता हूं। पढ़ें (); }}
इसके लिए काम करने के लिए आप निम्न परिवर्तन कर सकते हैं
सार्वजनिक वर्ग एक {[XmlElement ("बी")] सार्वजनिक बी [] बीबी {प्राप्त; सेट; }}
<कोड> का उपयोग करके XmlElement सरणी पर विशेषता, आप अनिवार्य रूप से serializer कि सरणी तत्व होना चाहिए कह रहे हैं serialize / deserialized के प्रत्यक्ष बच्चे तत्व के रूप में वर्तमान तत्व।
यहाँ एक काम का उदाहरण है, मैं एक्सएमएल को केवल एक उदाहरण में आत्मनिर्भर बनाने के लिए स्ट्रिंग में डाल दिया।
सिस्टम का उपयोग कर; System.IO का उपयोग कर; System.Xml.Serialization का उपयोग कर; नाम स्थान ConsoleApplication1 {वर्ग कार्यक्रम {static void मुख्य (स्ट्रिंग [] args) {स्ट्रिंग एक्सएमएल = @ "& lt; a & gt; & lt; p & gt; & lt; ग & gt; VAL1 & lt; / ग & gt; & lt; घ & gt; val2 & lt; / घ & gt; & lt; / p & gt; & lt; p & gt; & lt; ग & gt; val3 & lt; / ग & gt; & lt; घ & gt; val4 & lt; / घ & gt; & lt; / b & gt; & lt; / a & gt; "; XmlSerializer xs = नया XmlSerializer (टाइपफ (ए)); एक i = (a) xs.Deserialize (नई स्ट्रिंगरेडर (xml)); अगर (i = अशक्त & amp;! & amp; i.bb = अशक्त & amp;! & amp; i.bb.Length & gt; 0) {Console.WriteLine (i.bb [0] ग); } Else {Console.WriteLine ("कुछ गलत हो गया!"); } कंसोल। रीडके (); }} [XmlRoot ("ए")] सार्वजनिक वर्ग एक {[XmlElement ("बी")] सार्वजनिक बी [] बीबी {get; सेट; }} सार्वजनिक वर्ग b {[XmlElement ("c")] सार्वजनिक स्ट्रिंग c {get; सेट; } [XmlElement ("डी")] सार्वजनिक स्ट्रिंग डी {get; सेट; }}}
Comments
Post a Comment