Я писал общий класс для чтения RSS-канала из разных источников и для консолидации в одной коллекции объектов на VB.net.LINQ to XML, когда узел не существует
В принципе, функция - с использованием LINQ to XML - работает нормально, но у меня проблема, когда RSS-канал, который я пытаюсь прочитать, не содержит одного из узлов (как вы знаете, многие из них являются необязательными). Я бы возвращал значение как пустую строку или ничего, но вместо этого я возвращаю ошибку времени выполнения. Я искал в Интернете по той же проблеме, и я нашел этот пост http://forums.asp.net/p/1351226/2762834.aspx#2762834, который, по-видимому, объясняет обходной путь, но он не работает с моим кодом.
Я также удивлен мало ресурсов я найти по этому вопросу, поэтому я теперь интересно, если я даже поставить вопрос в правильных условиях ...
После вы можете найти код:
Dim PostsEnum = From BlogPost In XMLSource.Descendants("item")
Order By DateTime.Parse(BlogPost.Element("pubDate").Value) Descending
Select New Post() With {
.Title = BlogPost.Element("title").Value,
.Link = BlogPost.Element("link").Value,
.Description = BlogPost.Element("description").Value,
.AuthorText = BlogPost.Element("author").Value,
.Category = (From tag In BlogPost.Descendants("category")
Select cat = tag.FirstNode.ToString).ToList,
.PubDate = DateTime.Parse(BlogPost.Element("pubDate").Value),
.GUID = BlogPost.Element("guid").Value
}
я попробовал это на http://neatlydoc.codeplex.com/Project/ProjectRss.aspx, и она работала, но следующий код будет генерировать исключение:
Dim PostsEnum = From BlogPost In XMLSource.Descendants("item")
Order By DateTime.Parse(BlogPost.Element("pubDate").Value) Descending
Select New Post() With {
.Title = BlogPost.Element("title").Value,
.Link = BlogPost.Element("link").Value,
.Description = BlogPost.Element("description").Value,
.AuthorText = BlogPost.Element("author").Value,
.Category = (From tag In BlogPost.Descendants("category")
Select cat = tag.FirstNode.ToString).ToList,
.PubDate = DateTime.Parse(BlogPost.Element("pubDate").Value),
.GUID = BlogPost.Element("guid").Value,
.Source = CType(BlogPost.Element("source").Value, String)
}
Любая помощь будет ок eciated.
Благодаря
Лука
см. Обновление ... найдено и исправлено ... –
спасибо. – lucamauri
оба меня? (confused ...) –