![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 соответствующий тексту. Но это вам вряд ли нужно.