简体   繁体   中英

How to select multiple element with te same name form XML using C#?

I am realy stuck on this one so all help is realy welcome. I have an XML document like this:

</root>
 <person>
  <name>John</name>
  <lastname>Doe</lastname>
  <laguage>NL</language>
  <laguage>EN</language>
  <laguage>DK</language>
 </person>
<person>
 <name>Samantha</name>
 <lastname>Doe</lastname>
 <laguage>NL</language>
 <laguage>EN</language>
 <laguage>DK</language>
</person>
</root>

So i want to read this in a place it in one of my Models so i do this like this here below.

XDocument xDoc = XDocument.Load("c:\\users\\acount\\documents\\visual studio 2010\\Projects\\XmlTest\\XmlTest\\XmlTest\\Sample.xml");

var data = from feed in xDoc.Descendants("person")
           select new XmlModel
           {
             name = feed.Element("name").Value,
             lastname = feed.Element("lastname").Value,
             language = feed.Element("language").Value,
           };

So like you would expect this only reads one language and not more than one. What i need i read all the languages but there is still a problem because some persons do know more languages than others. Can some one help me because i am getting sick and tired

languages = feed.Descendants("language").Select(x=>x.Value).ToList(),
var data = from feed in xDoc.Descendants("person")
               select new XmlModel
                   {
                       name = feed.Element("name").Value,
                       lastname = feed.Element("lastname").Value,
                       language = feed.Elements("language").Select(x=>x.Value)
                   };

You need to make language of XmlModel as an IEnumerable<string> so that it can store multiple languages..

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM