Форум программистов, компьютерный форум CyberForum.ru

Создание RSS агрегатора - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 21:23     Создание RSS агрегатора #1
возникла срочная необходимость создать простенький RSS,который получает новости,а отображает их в дефолтном браузере,однако ни с чем подобным не сталкивался прежде.я не прошу готовый код,я лишь прошу подсказать мне какие шаги нужно сделать,если вы знаете уже сделанный пример,скиньте пожалуйста ссылку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 21:23     Создание RSS агрегатора
Посмотрите здесь:

Создание кода программы с нуля!! создание кода C++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
04.07.2012, 21:55     Создание RSS агрегатора #2
Ну, а скачать html + сохранить + парсить + открыть в браузере результат...
Не канает?
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 22:02  [ТС]     Создание RSS агрегатора #3
да дело в том,что ничего из этого н едоводилось делать,в этом вся беда
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
04.07.2012, 22:09     Создание RSS агрегатора #4
А на чем и под чем пишешь?

html - страницу можно скачать библиотекой curlib
Парсить boost/regex.

А авторизация нужна?


Скачивание из интернета
Builder и curl

http://www.cyberforum.ru/cpp-beginne...ead536710.html
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 22:30  [ТС]     Создание RSS агрегатора #5
пишу на С++
нужно лишь получить новости и отобразить заголовок новости и часть новости

Добавлено через 29 секунд
Цитата Сообщение от Avazart Посмотреть сообщение
html - страницу можно скачать библиотекой curlib
вы не могли привести ссылку на пример
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
04.07.2012, 22:33     Создание RSS агрегатора #6
пишу на С++
Я имею ввиду среду разработки и OS.
вы не могли привести ссылку на пример
Привел - первая ссылка в конце темы.
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 22:34  [ТС]     Создание RSS агрегатора #7
Visual Studio 2010 & Windows
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
05.07.2012, 15:09     Создание RSS агрегатора #8
Цитата Сообщение от Avazart Посмотреть сообщение
html - страницу можно скачать библиотекой curlib

Не по теме:

но вообщето не curlib а libcurl


а вообще лучше качать самому, составить GET запрос не так уж и сложно

Цитата Сообщение от Avazart Посмотреть сообщение
Парсить boost/regex.
а зачем regex? RSS этож xml файл тоесть лучше использовать xml парсер скажем expat, tinyxml
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
05.07.2012, 15:29     Создание RSS агрегатора #9
а вообще лучше качать самому
Это почему?
Тут почему-то высказали другое мнение Скачивание из интернета
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
05.07.2012, 15:38     Создание RSS агрегатора #10
Avazart, а я и неговорил все качать самому, мой совет был только для этой программы. Давайте рассуждать логически, зачем использовать curl для закачки одного маленького файла?
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
05.07.2012, 15:42     Создание RSS агрегатора #11
Ну, а что использовать?
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
05.07.2012, 15:44     Создание RSS агрегатора #12
winsock или сокеты беркли, смотря на какой платформе
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
07.07.2012, 00:10     Создание RSS агрегатора #13
Но это посути ручками.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
07.07.2012, 01:02     Создание RSS агрегатора #14
Цитата Сообщение от Avazart Посмотреть сообщение
Но это посути ручками.
мне так больше нравится, и кстати если добавить один #ifdef, будет кроссплатформенность
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
07.07.2012, 17:51  [ТС]     Создание RSS агрегатора #15
есть проблема с парсингом xml документа
вылетает ошибка при компиляции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TiXmlDocument* doc = new TiXmlDocument("C:\\data.xml");
 
    bool LoadOK = doc->LoadFile();
 
    if(LoadOK)
    {
        cout << "error\n";
        return 0;
    }
 
    TiXmlElement *element = doc->FirstChildElement("channel");
 
    element = element->FirstChildElement("item")//здесь ошибка
 
    int count = 0;
 
    while(element != NULL)
    {
        TiXmlElement *title = element->FirstChildElement("title");
        cout << title->GetText() << endl;
        element->NextSiblingElement();
    }
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
09.07.2012, 01:47     Создание RSS агрегатора #16
Ну наверное следовало бы и сам xml выложить, ошибку указать
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
09.07.2012, 01:53     Создание RSS агрегатора #17
Цитата Сообщение от alexey31415 Посмотреть сообщение
C++
1
element = element->FirstChildElement("item")//здесь ошибка
Ну здесь-то и в самом деле ошибка. Не хватает точки с запятой в конце. Или кто-то нас дурит и точка с запятой там есть?
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 02:24  [ТС]     Создание RSS агрегатора #18
Цитата Сообщение от grizlik78 Посмотреть сообщение
точка с запятой там есть
да это тогда было,я конечно поставил ;
вот файл
а вот код,что есть на данный момент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "tinyxml.h"
#include "tinystr.h"
 
#include<iostream>
 
using namespace std;
 
#pragma comment(lib, "tinyxml.lib")
 
int main()
{
 TiXmlDocument doc("C:/data.xml");
 
 /*TiXmlDeclaration dec; 
 dec.Parse( "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>", 0, TIXML_ENCODING_UTF8 ); 
 doc.InsertEndChild( dec );
 
 doc.SaveFile();*/
 
 bool LoadOK = doc.LoadFile();
 
 if(!LoadOK)
 {
  cout << "error\n";
  system("pause");
  return 0;
 }
 
 TiXmlElement *rss = doc.FirstChildElement("rss");
 
 TiXmlElement *channel = rss->FirstChildElement("channel");
 
 channel = channel->FirstChildElement("title");
 
 int count = 0;
 
 while(channel != NULL)
 {
  TiXmlElement *title = channel->FirstChildElement("title");
  cout << title->GetText() << endl;
  channel=channel->NextSiblingElement();
 }
 
 system("pause");
 
 return 0;
 
}
Добавлено через 2 минуты
xml файл
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 02:33  [ТС]     Создание RSS агрегатора #19
выкидывается ошибка
и открывается файл со следующей функцией
C++
1
2
3
4
5
6
7
8
9
10
const TiXmlNode* TiXmlNode::FirstChild( const char * _value ) const
{
    const TiXmlNode* node;
    for ( node = firstChild; node; node = node->next )
    {
        if ( strcmp( node->Value(), _value ) == 0 )//сюда указывает стрелка,значит ошибка в этой строке
            return node;
    }
    return 0;
}
Миниатюры
Создание RSS агрегатора  
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
09.07.2012, 16:41     Создание RSS агрегатора #20
Выложите C:/data.xml

Как я понимаю можно использовать еще libxml2 как парсер.
( http://www.cyberforum.ru/blogs/131347/blog538.html )
Yandex
Объявления
09.07.2012, 16:41     Создание RSS агрегатора
Ответ Создать тему
Опции темы

Текущее время: 08:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru