2012-07-02 12 views
8

संभव डुप्लिकेट:
How to Deserialize XML documentसी # में कक्षा में पार्स एक्सएमएल स्ट्रिंग?

मान लीजिए कि मैं एक वर्ग है कि सी # में इस तरह परिभाषित किया गया है है:

public class Book 
{ 
    public string Title {get; set;} 
    public string Subject {get; set;} 
    public string Author {get; set;} 
} 

मान लीजिए कि मैं एक्सएमएल है कि इस तरह दिखता है :

<Book> 
    <Title>The Lorax</Title> 
    <Subject>Children's Literature</Subject> 
    <Author>Theodor Seuss Geisel</Author> 
<Book> 

यदि मैं इस XML का उपयोग कर Book कक्षा का एक उदाहरण तत्काल करना चाहता हूं, तो मुझे ऐसा करने का एकमात्र तरीका एक्सएमएल दस्तावेज़ वर्ग का उपयोग करना और एक्सएमएल नोड्स का आकलन करना है।

क्या नेट फ्रेमवर्क एक्सएमएल कोड के साथ कक्षाओं को तत्काल करने का कोई तरीका प्रदान करता है? यदि नहीं, तो इसे पूरा करने के लिए सर्वोत्तम अभ्यास क्या हैं? System.Xml.Serialization में XmlSerializer रहने और नए DataContractSerializer जो System.Runtime.Serialization में है -

+0

क्षमा करें। उत्तर के लिए धन्यवाद! :-) –

उत्तर

37

तुम सिर्फ एक्सएमएल से वर्ग का एक उदाहरण बनाने के लिए एक्सएमएल क्रमबद्धता का उपयोग कर सकते हैं: डुप्लिकेट के लिए

XmlSerializer serializer = new XmlSerializer(typeof(Book)); 
using (StringReader reader = new StringReader(xmlDocumentText)) 
{ 
    Book book = (Book)(serializer.Deserialize(reader)); 
} 
+0

+1 छोटे और साफ समाधान के लिए +1 – cppanda

+0

यह मेरी परियोजना में बहुत अच्छा काम कर रहा है। धन्यवाद! –

+0

सरल और सीधे बिंदु पर .. अच्छा .. धन्यवाद :) – AKS

8

वहाँ एक XML दस्तावेज deserialize करने के लिए कई तरीके हैं।

दोनों की आवश्यकता है कि आप अपने वर्ग के सदस्यों को उन गुणों के साथ सजाने दें जो धारावाहिक को कैसे संचालित करें (प्रत्येक के लिए अलग-अलग गुण) को बताएं।

संबंधित मुद्दे