2013-07-18 3 views
0

Я написал веб-страницу, которая берет XML-файл из RSS и анализирует его некоторыми тегами. Я тестировал его на локальной копии данных, которые планирую использовать, и работает отлично. Уловка заключается в том, что я не могу понять, как вызвать файл RSS на другой веб-странице и проанализировать его данные.Использование Javascript для извлечения данных из фида RSS Atom

Вот мой код для создания парсера:

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.open("GET", ".../NewsFeed.aspx?output=Atom", false); 

Вот заголовок файла XML, я получаю, когда я проверить RSS страницы:

<?xml version="1.0" encoding="UTF-8" ?> 
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"> 
<title type="text"> News</title> 
<subtitle type="text">A syndication of the most recently published news.</subtitle> 

<id>uuid:64d61c8e-c5d7-4529-b5a3-2dcd4097238b;id=50</id> 

<rights type="text">© 2013 <owner goes here>. All Rights Reserved.</rights> 

<updated>2013-07-09T13:34:27Z</updated> 

<link rel="alternate" href=".../Default.aspx" /> 
<link rel="self" href=".../NewsFeed.aspx" /> 

отредактированные ссылки на проводки. Я попытался использовать обе ссылки, перечисленные в документе RSS, а также URL-адрес внешнего фида в открытом XML-методе, но мне не повезло.

xmlhttp.open("GET", "link goes here", false); 

Кто-нибудь знает, как я буду читать RSS-канал? В качестве побочного примечания, канал является стандартным RSS-каналом (2.0), возвращенным в формате Atom.

+0

Трубы YQL или yahoo – dandavis

+0

Я не совсем уверен, что вы подразумеваете под этим. Я не очень хорошо знаком с взаимодействием HTML/JS и XML – user2517628

+0

, когда кто-то дает мне предложение, о котором я не слышал, первое, что я делаю, это google it ... – dandavis

ответ

0

Две вещи, чтобы проверить для начала:

1) Ваш NewsFeed.aspx должен быть размещен на точно такой же протокол, суб-домен, домен и порт, как страница называя его. В противном случае безопасность браузера будет удалена и не позволит вам использовать XHR. Если вы пытаетесь прочитать сторонний RSS-канал, вам может понадобиться использовать прокси-сервер.

2) Заголовок заголовка контента для ответа должен быть text/xml. Есть способы обойти это, но лучше, если контент-тип является точным.

+0

В ответ на ваш первый вопрос, это, вероятно, почему это не работает. Я развиваюсь на сервере песочницы, и RSS находится в прямом эфире. Что касается второго, я не контролирую, как форматируется XML/RSS, поэтому мне приходится работать в пределах его ограничений. – user2517628

+0

Похоже, вам нужен прокси-сервер, мне тоже нужно было сделать то же самое. Что касается типа содержимого, обратите внимание, что это заголовок ответа НЕ является частью форматирования XML. Заголовки ответов задаются сервером, поэтому, если вы дойдете до точки, где вы можете увидеть, что это неправильно, вам придется поговорить с администратором сервера. – murdock

+0

Вы также можете использовать API Superfeedr с поддержкой JSONP при возврате корма :) –

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