Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IHTMLDOMNode. nodeType? [D7]


mfender ©   (2006-10-02 10:32:00) 

Здравия желаю!

Что-то я совсем запутался.

   for I := 0 to ((WB.Document as IHTMLDocument2).all as IHTMLElementCollection).length - 1 do
   begin
     try
       Memo1.Lines.Add(IntToStr((((WB.Document as IHTMLDocument2).all as IHTMLElementCollection).item(I, Null) as IHTMLDOMNode).nodeType));
     except
     end;
   end;

где WB - TWebBrowser. В результате в Memo1 в каждой строке результат = 1, т.е. Element. А как, всё-таки, добраться до текстовых узлов, тип которых 3?


palva   (2006-10-02 14:48:00) [1]

Ну тогда значит, как я уже написал. От элемента брать дочерние узлы и проверять типы этих узлов. Если элемент, то спускаться еще ниже, пока не будет найден текст.


mfender   (2006-10-02 11:48:00) [2]


> palva ©   (02.10.06 10:54) [1]
> Наверно, так: вместо
> as IHTMLDOMNode).nodeType)
> поставить
> as IHTMLDOMElement).Text)

IHTMLDOMElement - такого интерфейса вообще нет.

> В принципе до текстовых узлов добираться - это надо от элемента
> брать дочерний, пока не будет nodeType соответствующий тексту.
>  Но это вам вряд ли нужно.

Вот именно это и надо. Приведённый кусок кода - просто попытка найти текстовые узлы. На деле я уже с пятницы бьюсь с рекурсивной процедуркой http://www.delphimaster.ru/cgi-bin/forum.pl?id=1159530337&n=18- ничего не получается. Я уже проштудировал весь MSHTML и его MSDN - http://msdn.microsoft.com/workshop/browser/mshtml/reference/ifaces/interface.asp?frame=true. И ничего не могу поделать со всем этим... Потому сюда и обращаюсь...


palva   (2006-10-02 10:54:00) [3]

Наверно, так: вместо
as IHTMLDOMNode).nodeType)
поставить
as IHTMLDOMElement).Text)

В принципе до текстовых узлов добираться - это надо от элемента брать дочерний, пока не будет nodeType соответствующий тексту. Но это вам вряд ли нужно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо