2012-05-24 11 views
7

मैं मुसीबत यह पता लगाना रही है, इसलिए मैं एक xml चादर है कि इसएक्सएमएल क्रमबद्धता सरणी

<root> 
    <list id="1" title="One"> 
    <word>TEST1</word> 
    <word>TEST2</word> 
    <word>TEST3</word> 
    <word>TEST4</word> 
    <word>TEST5</word> 
    <word>TEST6</word> 
    </list> 
    <list id="2" title="Two"> 
    <word>TEST1</word> 
    <word>TEST2</word> 
    <word>TEST3</word> 
    <word>TEST4</word> 
    <word>TEST5</word> 
    <word>TEST6</word> 
    </list> 
</root> 

की तरह लग रहा है और मैं में

public class Items 
{ 
    [XmlAttribute("id")] 
    public string ID { get; set; } 

    [XmlAttribute("title")] 
    public string Title { get; set; } 

    //I don't know what to do for this 
    [Xml... something] 
    public list<string> Words { get; set; } 
} 

//I don't this this is right either 
[XmlRoot("root")] 
public class Lists 
{ 
    [XmlArray("list")] 
    [XmlArrayItem("word")] 
    public List<Items> Get { get; set; } 
} 

//Deserialize XML to Lists Class 
using (Stream s = File.OpenRead("myfile.xml")) 
{ 
    Lists myLists = (Lists) new XmlSerializer(typeof (Lists)).Deserialize(s); 
} 

मैं इसे क्रमानुसार करने कोशिश कर रहा हूँ एक्सएमएल और एक्सएमएल सीरियलाइजिंग के साथ वास्तव में नया है, किसी भी मदद की बहुत सराहना की जाएगी

+0

उपयोग XmlArray अपनी कक्षाओं की घोषणा काम करना चाहिए – sll

+1

बस नोट का एक बिंदु, यदि आप XML को ऑब्जेक्ट्स में परिवर्तित कर रहे हैं, तो यह Deserializing है। ऑब्जेक्ट्स को एक्सएमएल में कनवर्ट करना (या किसी अन्य प्रारूप जिसे डिस्क या नेटवर्क स्टीम पर भेजा जा सकता है) क्रमबद्ध है। – MCattle

उत्तर

8

यदि आप शब्द संपत्ति के लिए के रूप में

public class Items 
{ 
    [XmlAttribute("id")] 
    public string ID { get; set; } 

    [XmlAttribute("title")] 
    public string Title { get; set; } 

    [XmlElement("word")] 
    public List<string> Words { get; set; } 
} 

[XmlRoot("root")] 
public class Lists 
{ 
    [XmlElement("list")] 
    public List<Items> Get { get; set; } 
} 
3

यदि आपको किसी ऑब्जेक्ट स्ट्रक्चर में अपना एक्सएमएल पढ़ने की जरूरत है, तो XLINQ का उपयोग करना आसान हो सकता है।

इसलिए की तरह अपने वर्ग को परिभाषित करें:

public class WordList 
{ 
    public string ID { get; set; } 
    public string Title { get; set; } 
    public List<string> Words { get; set; } 
} 

और फिर एक्सएमएल पढ़ें:

XDocument xDocument = XDocument.Load("myfile.xml"); 

List<WordList> wordLists = 
(
    from listElement in xDocument.Root.Elements("list") 
    select new WordList 
    { 
     ID = listElement.Attribute("id").Value, 
     Title = listElement.Attribute("title").Value, 
     Words = 
     (
      from wordElement in listElement.Elements("word") 
      select wordElement.Value 
     ).ToList() 
    } 
).ToList(); 
संबंधित मुद्दे