2010-05-26 6 views
3

Alors, voici mon fichier XML:Obtenir les données de XDocument

<book> 
    <title>Book Title</title> 
    <author>Book Author</author> 
    <pubDates> 
     <date format="standard">1991-01-15</date> 
     <date format="friendly">January 1991</date> 
    </pubDates> 
</book> 

Je chargement des données dans un XDocument, puis le récupérer à partir du XDocument et l'ajouter dans une classe du livre, mais je vais avoir du mal obtenir la date. J'aimerais récupérer la date amicale.

Voici ce que j'ai:

XDocument xml = XDocument.Load("http://www.mysite.com/file.xml"); 

List<Book> books = new List<Book>(); 
books.Add(new Book 
       { 
        Title = xml.Root.Element("title").Value, 
        Author = xml.Root.Element("author").Value, 
        //PubDate = 
       } 
      ); 

Comment puis-je obtenir la date amicale?

Répondre

5
PubDate = DateTime.ParseExact(xml.Root.Elements("pubDates") 
.Elements("date") 
.Where(n => n.Attribute("format").Value == "standard") 
.FirstOrDefault() 
.Value 
, "yyyy-mm-dd", CultureInfo.InvariantCulture); 
+0

Cela fonctionne très bien, merci. – Steven

+0

J'ai remarqué que vous avez demandé la date amicale, mais je me suis dit que si vous obtenez une vraie valeur DateTime à la place, vous pouvez alors faire ce que vous voulez avec. – Tergiver

0

Je n'ai pas testé, mais il devrait ressembler à ceci:

from node in xml.DescendantNodes("pubDates").DescendantNodes("date") 
where node.Attribute("format").Value == "friendly" 
select node.Value.FirstOrDefault()