Программирование - это просто
Advertisement
Главная arrow Уроки Delphi arrow Пишем на Delphi 7 мониторинг поисковых запросов arrow Урок 5. Изучаем компонент Delphi TWebBrowser. Часть 3 (OleObject, DOM, getElementsByTagName).
23.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Урок 5. Изучаем компонент Delphi TWebBrowser. Часть 3 (OleObject, DOM, getElementsByTagName). Печать E-mail
Автор megabax   
28.01.2010 г.
В этой статье будет пошагово описано создание на Delphi приложение

Урок 5. Изучаем компонент Delphi TWebBrowser. Часть 3 (OleObject, DOM, getElementsByTagName).

Откроем проект, который мы сделали на предыдущем уроке. Удаляем объект mmResults, вместо него положим на форму компонент TTreeView и обзовем его tvTables. Находиться он на закладке Win32*:

компонент Delphi TWebBrowser (OleObject, DOM, getElementsByTagName)

У кнопочки поменяем заголовок (Caption) и обработчик события OnClick:

procedure TfrmTestWebBrowser.btnExecClick(Sender: TObject);
var cn,cnrows,cncols, i,j, k:integer; vTags:OleVariant; s:string;
       Node,RowNode, ColNode:TTreeNode; vCols:OleVariant;
begin
      tvTables.Items.Clear;
      vTags:=wbWebBrowser.OleObject.Document.getElementsByTagName('Table');
      cn:=vTags.length;

      //нужно перебрать все строки и столбцы таблицы
      for i:=0 to cn-1 do
      begin
         s:='';
         if vTags.Item(i).id<>'' then s:=s+' id='+vTags.Item(i).id;
         Node:=tvTables.Items.Add(nil,'Table '+IntToStr(i));
         cnrows:=vTags.Item(i).rows.length;
         for j:=0 to cnrows-1 do
         begin
             RowNode:=tvTables.Items.AddChild(Node,'строка '+IntToStr(j));
             vCols:=vTags.Item(i).rows.item(j).getElementsByTagName('TD');
             cncols:=vCols.length;
             for k:=0 to cncols-1 do
             begin
                  ColNode:=tvTables.Items.AddChild(RowNode,'столбец '+IntToStr(k));
                  s:=vCols.Item(k).innerHTML;
                  tvTables.Items.AddChild(ColNode,s);
             end;
          end;
       end;
end;

Вот что вы сможете увидеть, когда запустите программу:

компонент Delphi TWebBrowser (OleObject, DOM, getElementsByTagName)

И так, подытожим. Мы научились распарсивать HTML текст, в частности, в данном примере мы разобрали по строкам и столбцам таблицу (тэг <table>). Для этого мы использовали методы и свойства DOM объектов:

  • getElementsByTagName - получаем список элементов по тэгу.
  • Item - обращение к конкретному элементу списка.
  • rows - коллекция строк таблицы, созданной тэгом <table>.
  • length - количество элементов в списке.

Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "Delphi", авторское право на который принадлежит Borland Delphi.. 


Последнее обновление ( 07.11.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги