views:

168

answers:

2

So here's my XML file:

<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>

I'm loading the data into an XDocument, then retrieving it from the XDocument and adding it into a Book class, but I'm having trouble getting the date. I'd like to retrieve the friendly date.

Here's what I have:

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 = 
                }
            );

How can I get the friendly date?

A: 

I haven't tested this, but it should look something like this:

from node in xml.DescendantNodes("pubDates").DescendantNodes("date")
where node.Attribute("format").Value == "friendly"
select node.Value.FirstOrDefault()
jvenema
+1  A: 
PubDate = DateTime.ParseExact(xml.Root.Elements("pubDates")
.Elements("date")
.Where(n => n.Attribute("format").Value == "standard")
.FirstOrDefault()
.Value
, "yyyy-mm-dd", CultureInfo.InvariantCulture);
Tergiver
This works great, thank you.
Steven
I noticed that you asked for the friendly date, but I figured if you get a real DateTime value instead, you can then do anything you want with it.
Tergiver