Чтение узла RSS-канала с использованием запроса Linq

1

В следующем примере вы можете предложить, какой лучший способ прочитать значение "ApplicationUrl" с помощью linq.

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
   <channel>
      <title>TestTitle</title>
      <item>
         <a10:content type="application/xml">
            <Vacancy xmlns="http://schemas.datacontract.org/2004/08/Har" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
               <AdvertText i:nil="true" />
               <ApplicationUrl>http://www.Test.co.uk/test/Sec/signin.aspx?vid=685</ApplicationUrl>
            </Vacancy>
         </a10:content>
      </item>
   </channel>
</rss>

Я пытаюсь читать, используя следующий запрос linq, но застрял на уровне контента

(from node in doc.Elements("channel").Elements("item")
 select new
 {
     Link = "link: " +node.Element("link").Value,
     Title = "Title: "+node.Element("title").Value,
     UpdatedOn ="Updated on : "+  node.Element(atom + "updated").Value,
     //here I have problem for getting Content properly
     Content = "Vacancy : " + XElement(node.Element(atom + "Vacancy"))
 })
Теги:
linq
rss

1 ответ

1
Лучший ответ

Вы можете попробовать:

XNamespace ns = "http://schemas.datacontract.org/2004/08/Har";
XNamespace a10 = "http://www.w3.org/2005/Atom";
......
......
(from node in doc.Elements("channel").Elements("item")
 select new
 {
     Link = "link: " + (string)node.Element("link"),
     Title = "Title: "+ (string)node.Element("title"),
     UpdatedOn ="Updated on : "+ (string)node.Element(atom + "updated"),
     Content = "Vacancy : " + (string)node.Element(a10+"content")
                                          .Element(ns+"Vacancy")
                                          .Element(ns+"ApplicationUrl")
 })

Ещё вопросы

Сообщество Overcoder
Наверх
Меню