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

Вопрос по обработке исходного кода интернет-страницы. - C++

Восстановить пароль Регистрация
 
nirvs44
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 5
07.05.2012, 23:23     Вопрос по обработке исходного кода интернет-страницы. #1
Сама задача состоит в том, чтобы вывести таблицу, сколько раз каждое слово повторяется в тексте.
Это сделать могу, допустим, используя ассоциативный контейнер.
Но что делать, когда текстовый файл представляет собой исходный код интернет-страницы (или вместо исходного кода на входе разрешено передавать сам адрес интернет-страницы)? Помогите разобраться или посоветуйте что почитать на эту тему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 23:23     Вопрос по обработке исходного кода интернет-страницы.
Посмотрите здесь:

C++ C++ вопрос по обработке текста
C++ Результат программы — вывод исходного кода
нет исходного кода C++
Востановления исходного кода из файла o C++
C++ Выполнение исходного кода в Visual Studio
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.05.2012, 01:22     Вопрос по обработке исходного кода интернет-страницы. #2
написать парсер или распарсить страничку регулярками
nirvs44
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 5
09.05.2012, 13:58  [ТС]     Вопрос по обработке исходного кода интернет-страницы. #3
Цитата Сообщение от panicwassano Посмотреть сообщение
написать парсер или распарсить страничку регулярками
на c++ можно это сделать?
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.05.2012, 20:04     Вопрос по обработке исходного кода интернет-страницы. #4
возьми готовый xtml парсер, например libxml2
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
#include <iostream>
#include <cctype>
#include <libxml/parser.h>
 
bool NonSpaces(const xmlChar* p)
{
    for(; *p; ++p)
    {
        if(!std::isspace(*p)) return true;
    }
    return false;
}
 
void RecursiveWalk(xmlNodePtr pNode)
{
    if(pNode->type == xmlElementType::XML_TEXT_NODE && NonSpaces(pNode->content))
    {
        std::cout << pNode->content << std::endl;
        xmlFreeNode(pNode);
    }
    else if(pNode->type == xmlElementType::XML_ELEMENT_NODE)
    {
        for(xmlNodePtr pChildNode = pNode->children; pChildNode; pChildNode = pChildNode->next)
        {
            RecursiveWalk(pChildNode);
        }
    }
}
 
int main()
{
    LIBXML_TEST_VERSION;
    xmlDocPtr pDoc = xmlParseFile("1.xml");
    if(pDoc)
    {
        RecursiveWalk(xmlDocGetRootElement(pDoc));
        xmlFreeDoc(pDoc);
    }
    else puts("Unable to open the file");
    return 0;
}
Миниатюры
Вопрос по обработке исходного кода интернет-страницы.  
nirvs44
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 5
09.05.2012, 21:59  [ТС]     Вопрос по обработке исходного кода интернет-страницы. #5
Цитата Сообщение от igorrr37 Посмотреть сообщение
возьми готовый xtml парсер, например libxml2
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
#include <iostream>
#include <cctype>
#include <libxml/parser.h>
 
bool NonSpaces(const xmlChar* p)
{
    for(; *p; ++p)
    {
        if(!std::isspace(*p)) return true;
    }
    return false;
}
 
void RecursiveWalk(xmlNodePtr pNode)
{
    if(pNode->type == xmlElementType::XML_TEXT_NODE && NonSpaces(pNode->content))
    {
        std::cout << pNode->content << std::endl;
        xmlFreeNode(pNode);
    }
    else if(pNode->type == xmlElementType::XML_ELEMENT_NODE)
    {
        for(xmlNodePtr pChildNode = pNode->children; pChildNode; pChildNode = pChildNode->next)
        {
            RecursiveWalk(pChildNode);
        }
    }
}
 
int main()
{
    LIBXML_TEST_VERSION;
    xmlDocPtr pDoc = xmlParseFile("1.xml");
    if(pDoc)
    {
        RecursiveWalk(xmlDocGetRootElement(pDoc));
        xmlFreeDoc(pDoc);
    }
    else puts("Unable to open the file");
    return 0;
}
я очень не далёкий, по-видимому.
у меня подчёркивается
C
1
#include <libxml/parser.h>
потому что не удаётся открыть его.
я должен был сам его подключить или как?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
09.05.2012, 22:05     Вопрос по обработке исходного кода интернет-страницы. #6
Цитата Сообщение от nirvs44 Посмотреть сообщение
потому что не удаётся открыть его.
я должен был сам его подключить или как?
потому что нужно скачать указанную библиотеку и прописать пути
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 22:51     Вопрос по обработке исходного кода интернет-страницы.
Еще ссылки по теме:

C++ Компиляция исходного кода в работающей программе
C++ Написать программу с объектами из исходного кода

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

Или воспользуйтесь поиском по форуму:
nirvs44
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 5
09.05.2012, 22:51  [ТС]     Вопрос по обработке исходного кода интернет-страницы. #7
Цитата Сообщение от panicwassano Посмотреть сообщение
потому что нужно скачать указанную библиотеку и прописать пути
Я правильно понимаю, отсюда можно скачать её?
Если да, то подскажите пожалуйста, какие именно файлы необходимо скачать и как прописать пути к ним?
Yandex
Объявления
09.05.2012, 22:51     Вопрос по обработке исходного кода интернет-страницы.
Ответ Создать тему
Опции темы

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