2010-05-26 2 views
3

Так вот мой XML-файл:Получить данные из 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> 

Я загрузки данных в XDocument, а затем извлечения его из XDocument и добавить его в класс книги, но у меня возникают проблемы получение даты. Я хотел бы получить дружескую дату.

Вот что у меня есть:

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

Как я могу получить дружеское свидание?

ответ

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

Это прекрасно работает, спасибо. – Steven

+0

Я заметил, что вы попросили дружескую дату, но я решил, что вместо того, чтобы получить реальное значение DateTime, вы можете делать все, что хотите. – Tergiver

0

Я не проверял, но это должно выглядеть примерно так:

from node in xml.DescendantNodes("pubDates").DescendantNodes("date") 
where node.Attribute("format").Value == "friendly" 
select node.Value.FirstOrDefault() 
Смежные вопросы