2013-07-05 6 views
2

настоящее время я использую кодRss кормить Ebay с #

 string[] toSearch = { "title", "link", "description" }; 
     string url = "http://www.ebay.co.uk/sch/i.html?_sacat=0&_from=R40&_nkw=" + itemToSearch.Replace(" ", "+") + "&_sop=15&_rss=1"; 
     WebRequest request = WebRequest.Create(url); 
     WebResponse responce = request.GetResponse(); 
     Stream rssStream = responce.GetResponseStream(); 
     XmlDocument rssDocument = new XmlDocument(); 
     rssDocument.Load(rssStream); 
     XmlNodeList rssItems = rssDocument.SelectNodes("channel/item"); 
     int xMax = toSearch.Length; 
     int yMax = rssItems.Count; 
     String[,] tempRssData = new String[yMax + 1, xMax]; 
     for (int i = 0; i < rssItems.Count; ++i) 
     { 
      XmlNode rssNode = null; 
      for (int ii = 0; ii < toSearch.Length; ++ii) 
      { 
       rssNode = rssItems.Item(i).SelectSingleNode(toSearch[ii]); 
       if (rssNode != null) 
       { 
        tempRssData[i, ii] = rssNode.InnerText; 
       } 
       else 
       { 
        tempRssData[i, ii] = ""; 
       } 
      } 
     } 

но rssItems.Count = 0, Кто-нибудь знает, почему. пример использования rss-канала, который я использую: http://www.ebay.co.uk/sch/i.html?_sacat=0&_from=R40&_nkw=raspberry+pi&_sop=15&_rss=1

+3

Возможно, ваше значение XPath неверно. бит, который говорит «канал/элемент». Пройдите через отладчик, а также подтвердите, что ваш 'url' правильный – musefan

ответ

4

Ваш XPath ошибочен.

Я бы посоветовал вам научиться правильно использовать XPath, проверив XPath spec и посмотрев обучающие онлайн-уроки.

Чтобы устранить эту проблему, вам нужно будет изменить:

XmlNodeList rssItems = rssDocument.SelectNodes("channel/item"); 

к:

XmlNodeList rssItems = rssDocument.SelectNodes("//channel/item"); 

Вы также можете выполнять запросы XPath изначально в Chrome. Открыть страницу подачи RSS в Chrome, откройте Инструменты разработчика, откройте консоль и введите:

$x("expression") 

поэтому становится:

$x("channel/item") 

Что, вы должны заметить, ничего не возвращает.

+0

спасибо, это решило проблему – user2279389

Смежные вопросы