Книга знаний

1С:Предприятие / v8 / Приемы программирования / Интернет-технологии

v8: Лента новостей в 1с

Просмотр новостей со всего мира в 1сАвтор статьи: Михей | Редакторы:
Последняя редакция №8 от 20.11.07 | История
URL: http://kb.mista.ru/article.php?id=607

Ключевые слова: лента новостей, rss


Для начала определим сервер от которого будем получать новости в формате rss 2.0, например http://lenta.ru. Далее, создадим внешнюю обработку и разместим на ее форме ПолеHTMLДокумента и кнопку по котрой будем обновлять новости. В событие Нажатие кнопки поместим следующий код:
    
        // формируем HTML документ новостей
    ТекстHTML = 
    "";
    
    Соединение = Новый HTTPСоединение("lenta.ru");
    
    ИмяФайла = ПолучитьИмяВременногоФайла(".rss");
    
    Соединение.Получить("/r/EX/import.rss", ИмяФайла);
    
    ПараметрыЧтенияXML = Новый ПараметрыЧтенияXML(,,,, Истина, Истина,Истина,Истина,Истина);
    
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл(ИмяФайла, ПараметрыЧтенияXML);
    
    ЧтениеXML.Прочитать();
    Если ЧтениеXML.Имя = "rss" Тогда
        
         ЧтениеXML.Прочитать();
         Если ЧтениеXML.Имя = "channel" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
             
              // Выводим заголовок новостей
              title = ПрочитатьЗначениеТега(ЧтениеXML, "title");              
              
              ТекстHTML = ТекстHTML + "
              |<TITLE> " + title + "</TITLE>
              |<BODY>";              
                                          
              link        = ПрочитатьЗначениеТега(ЧтениеXML, "link");
              description = ПрочитатьЗначениеТега(ЧтениеXML, "description");
                            
              // Выводим link
              ТекстHTML = ТекстHTML + "
              |

<a href = """ + link + """> "+ description +"</a>

"; // выводим новости в таблице ТекстHTML = ТекстHTML + " |<table>"; НомерНовости = 0; // читаем собственно сами новости Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.Имя = "item" и ЧтениеXML.ТипУзла=ТипУзлаXML.НачалоЭлемента Тогда НомерНовости = НомерНовости + 1; title = ПрочитатьЗначениеТега(ЧтениеXML, "title"); link = ПрочитатьЗначениеТега(ЧтениеXML, "link"); description = ПрочитатьЗначениеТега(ЧтениеXML, "description"); pubDate = ПрочитатьЗначениеТега(ЧтениеXML, "pubDate"); category = ПрочитатьЗначениеТега(ЧтениеXML, "category"); // выводим новости в таблице ТекстHTML = ТекстHTML + " |<tr> | <td> " + Строка(НомерНовости) + ".</td> | <td><a href="""+link+"""a>" + title + "</a></td> |</tr>"; КонецЕсли; КонецЦикла; // закрываем вывод новостей ТекстHTML = ТекстHTML + " |</table>"; КонецЕсли; КонецЕсли; ТекстHTML = ТекстHTML + " |</BODY> |</HTML>"; ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(ТекстHTML); Функция ПрочитатьЗначениеТега(ЧтениеXML, Имя) Результат = Неопределено; ЧтениеXML.Прочитать(); // начало Если ЧтениеXML.Имя = Имя И ЧтениеXML.ТипУзла=ТипУзлаXML.НачалоЭлемента Тогда ЧтениеXML.Прочитать(); Результат = ЧтениеXML.Значение; КонецЕсли; ЧтениеXML.Прочитать(); // конец Возврат Результат; КонецФункции

И видим на форме обработки новости!
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2011 | Mista.ru

Яндекс.Метрика