Извлечение атрибутов дескрипторов HTML

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alex-lev9
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 13.07.2005 (Ср) 15:31

Извлечение атрибутов дескрипторов HTML

Сообщение alex-lev9 » 26.07.2007 (Чт) 16:51

Получил ответ на запрос к серверу, поместил его в RichTextBox1.Text.
Далее хочу вычленить из HTML-документа содержимое дескрипторов, имеющих подкласс (например: <div class="time">).
Приведенный код выдает ошибку 94 "Неверное использование значения Null".

Set Doc = New HTMLDocument
CallByName Doc, "write", VbMethod, RichTextBox1.Text

Set NodeList = Doc.All.tags("div")
Dim Numb As Integer
Numb = NodeList.length

Set Elems = Doc.getElementsByTagName("div")

For ii = 0 To Numb - 1
MsgBox Elems(ii).getAttribute("class")
Next ii

Как можно добраться до подкласса дескриптора?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 26.07.2007 (Чт) 17:19

А на какой строке он её выдаёт?
Salus populi suprema lex

alex-lev9
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 13.07.2005 (Ср) 15:31

Сообщение alex-lev9 » 26.07.2007 (Чт) 17:24

Да, кстати, если я изменю форму Msgbox на такую:

MsgBox "ii = " & ii & "; class = " & Elems(ii).getAttribute("class"),

на экран выдается сообщение

ii = 0, 1, 2... ; class = и тишина. Ошибка исчезает, но результата нет.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 26.07.2007 (Чт) 22:34

А кстати, что будет, если вместо getAttribute использовать что-то типа (вб нет под рукой, так что точно назвать не берусь) ClassName или getClassName. Вроде что-то такое было...
Salus populi suprema lex

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 27.07.2007 (Пт) 7:58

Если нужен конкретно class, то Elems(ii).className. Часть атрибутов, которые пишутся в html, являются свойствами элемента и в коллекцию атрибутов не попадают. Соответственно наоборот, атрибуты, не найденные среди свойств, попадают в коллекцию.
Лучший способ понять что-то самому — объяснить это другому.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 27.07.2007 (Пт) 9:18

Таки я был прав... Это радует :)
Salus populi suprema lex

alex-lev9
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 13.07.2005 (Ср) 15:31

Сообщение alex-lev9 » 27.07.2007 (Пт) 11:51

Таки да! Все пошло. А я уже от отчаяния стал приноравливаться к анализу строковой переменной, в которую отправлял Elems(ii).OuterHtml. Тоже получается, но гемора много.
Спасибо за подсказки.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 56

    TopList  
cron