Jump to content
  • 0

Все о парсинге RSS лент средствами JavaScript


integro
 Share

Question

Подскажите пожалуйста .

Вот есть JavaScript

//Загрузка XML-документа
function getXMLDocument(url)
{ var xml;
if (window.XMLHttpRequest)
{ xml=new window.XMLHttpRequest();
xml.open("GET", url, false);
xml.send("");
return xml.responseXML; }
else
if (window.ActiveXObject)
{ xml=new ActiveXObject("Msxml2.XMLHTTP");
//if (xml='undefined')
//{ xml=new ActiveXObject("Microsoft.XMLDOM");
xml.async=false;
xml.load(url);
return xml; }
else
{ alert("Загрузка XML не поддерживается браузером");
return null; } }

// Разбор XML-документа
function parseRSS(url,tTemp, bTemp)
{ // Пытаемся загрузить XML-документ
var xml=null;
try
{ xml=getXMLDocument(url);
if(!xml) return "<font color='red'>Нет данных</font>";}
catch(e)
{ return "<font color='red'>"+e.message+"</font>"; }

// Парсим логотип документа
var imageRSS='';
if(xml.getElementsByTagName('image'))
imageRSS='<img border="0" src="'+xml.getElementsByTagName("url")[0].text+'">';

// Парсим заголовок документа
var titleRSS='';
if(xml.getElementsByTagName('channel'))
{ titleRSS='<a href="'+xml.getElementsByTagName("link")[0].text+'">'+xml.getElementsByTagName("title")[0].text+imageRSS+'</a><br>'+
xml.getElementsByTagName("description")[0].text+'<hr>';
//+xml.getElementsByTagName("lastBuildDate")[0].text;
}

// Парсим items документа
var itemsRSS='';
var k= xml.getElementsByTagName('item');
if(k)
for(var i=0; i<k.length; i++)
{ itemsRSS=itemsRSS+xml.getElementsByTagName("pubDate")[1+i].text+'<br>'+
'<a href="'+xml.getElementsByTagName("link")[2+i].text+'">'+xml.getElementsByTagName("title")[2+i].text+'</a><br>'+
xml.getElementsByTagName("description")[1+i].text+'<hr>';
}

document.getElementById(tTemp).innerHTML=titleRSS;
document.getElementById(bTemp).innerHTML=itemsRSS; }

Я пытаюсь сделать :

Чтоб на другом сайте выводились только заголовки новостей с RSS!

Подходит только JavaScript так как на другом сайте нет PHP.

Помогите разобраться что не так в скрипте

Выводит весь RSS а нужно только заголовок новости!

Без текста и дат.

Ответить с цитированием

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  On 5/11/2011 at 4:09 PM, Great Rash said:

Ну и зачем парсить логотип и итемы если нужны только заголовки? Уберите лишний код и будет вам счастье.

Что та не получается

Подставляю любые RSS в итоге не отображает новости.


<script language="javascript" charset="utf-8" type="text/javascript" src="http://rss2js.ru/feed/js/здесь ссылка на RSS "></script>

Вот только полный выводит RSS

Если разбираетесь в javascript

посмотрите пожалуйста

Мне только заголовок нужен!

Link to comment
Share on other sites

  • 0
  Quote
Значит я ошибся и здесь нет людей которые смогли бы помочь с JavaScript

Да, вы ошиблись. Здесь нет людей, которые за вас напишут скрипт бесплатно. Предлагаю вам создать тему в коммерческом разделе. Думаю, рублей за 300 вам кто-нибудь напишет парсер, удовлетворяющий вашим условиям.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Обсуждения

    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com Портфолио https://www.behance.net/d4d4186e Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ    
    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com   Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ   Портфолио https://www.behance.net/d4d4186e
    • Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение.  .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }  
    • Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy