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

Вытащить текст между тегов html - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка: левый операнд должен быть левосторонним http://www.cyberforum.ru/cpp-beginners/thread625998.html
Имеется задача: печатать числа от 1 до 20, через каждое 5-ое число переходить на новую строку. #include <iostream> #include <locale.h> using namespace std; int main() { setlocale(LC_ALL, "RUS");
C++ Шаблон класса. Ошибка `missing type specifier` Вот код: template <int value, typename type> class Class { public: type Array; type Metod(type x); }; http://www.cyberforum.ru/cpp-beginners/thread625979.html
Алгоритм Евклида для n целых чисел C++
Задача: Составить рекурсивную функцию, реализующую алгоритм Евклида для n целых чисел. Самый главный вопрос: это вообще как? Сколько не гуглил, а алгоритма такого я не нашел. Или нужно алгоритм для двух чисел переделать под несколько? Разъясните, пожалуйста, что-куда, кодом или на пальцах, мне главное понять.
C++ Нулевой указатель на функцию
Всем привет. Ещё раз подыму предыдущую тему. Я делаю упражнение на явное связывание dll. Проблема состоит вот в чем. Я кладу библиотеку в папку с проектом. Делаю LoadLibrary и создаю указатель на функцию. Я прикрепляю скрин, где показываю, что указатель получается нулевой. Вопрос почему? Библиотека точно есть в проекте, может недостаточно LoadLibrary?
C++ Освобождение памяти от экземпляра класса http://www.cyberforum.ru/cpp-beginners/thread625937.html
есть класс : Message есть контейнер типа : multimap<int,Message> myQueue этот контейнер формируется так Message *c_message = new Message() myQueue.insert(make_pair(any_value,*c_message)) Как удалить именно этот экземпляр класса обращаясь к контейнеру myQueue, если у нас есть его итерратор типа : multimap<int,Message>::iterator map_it = myQueue1.begin(); Не могу понять, может быть в...
C++ Чтение/запись в файл Почему то попытка создать файл для записи или открыть какой либо файл для чтения оказывается неудачной, в чем может быть причина? string file; cout<<"Enter location file\n"; cin>>file; ofstream outfile; outfile.open(file); if(!outfile) cout<<"File not open"; ввожу что нить наподобие C:\namefile.txt подробнее

Показать сообщение отдельно
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
20.07.2012, 00:53     Вытащить текст между тегов html
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
#include <iostream>
#include <string>
 
 
int main() {
   std::string const page =
      "<html>"
         "<head>"
            "<title>Some title</title>"
         "</head>"
         "<body>"
            "<tag>Some content</tag>"
         "</body>"
      "</html>";
   std::string const tag = "tag";
   std::string text;
   
   std::string const opening = "<" + tag + ">";
   std::string const closing = "</" + tag + ">";
   std::string::size_type begin = page.find(opening);
   if (begin != std::string::npos) {
      begin += opening.length();
      std::string::size_type end = page.find(closing, begin);
      if (end != std::string::npos) {
         text = page.substr(begin, end - begin);
      }
   }
   
   std::cout << text << std::endl;
}
http://liveworkspace.org/code/5e319c...d3c71d92e3b582

Добавлено через 36 минут
Если тег не один, то можно как нибудь так:
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
#include <iostream>
#include <string>
 
#include <boost/regex.hpp>
 
 
int main() {
   std::string const page =
      "<html>"
         "<head>"
            "<title>Some title</title>"
         "</head>"
         "<body>"
            "<tag>Some content</tag>"
            "<another tag>"
               "<tag>Content</tag>"
            "</another tag>"
            "<tag>Another content</tag>"
         "</body>"
      "</html>";
   std::string const tag = "tag";
   std::string text;
   
   boost::regex regex("<" + tag + ">(.*?)</" + tag + ">");
   for (boost::sregex_iterator it(page.cbegin(), page.cend(), regex); it != boost::sregex_iterator(); ++it) {
      std::cout << (*it)[1] << std::endl;
   }
 
   std::cout << text << std::endl;
}
http://liveworkspace.org/code/aa452c...fe7eee297e2f6a
 
Текущее время: 17:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru