Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение атрибутов и вложенных тегов в HTML-докум 
:(
    Опции темы
Grelloo
Дата 9.7.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 18.3.2006
Где: г. Екатеринбург

Репутация: нет
Всего: нет



Проблема следующяя:
имеется произвольный HTML-документ, из которого требуется извлечь тег <A>, затем его
атрибуты и в зависимости от них обрабобтать  вложенный тег <IMG>
Пока что у меня получилось следующее:
Код
            m_doc = (HTMLDocument) m_kit.createDefaultDocument();

        //Получение атрибутов тега <A>
        HTMLDocument.Iterator it = m_doc.getIterator(HTML.Tag.A);
        for (; it.isValid(); it.next()){
            AttributeSet attrs = it.getAttributes();
            Object linkAttr = attrs.getAttribute(HTML.Attribute.HREF);
            System.out.println(linkAttr);
        }
        
        //Получение атрибутов тега <IMG>
        ElementIterator elit = new ElementIterator(m_doc);
        Element elem;
        while ((elem = elit.next()) != null) {
            if (elem.getName().equals("img")) {
                System.out.println(elit.next().getDocument().getDefaultRootElement());
                AttributeSet attrs2 = elem.getAttributes();
                Object scr = attrs2.getAttribute(HTML.Attribute.SRC);
                System.out.println(scr);
            }

При этом взять child у A или parent у IMG не получиться.  Пробовал  методами getElement, но в этом случае вместо тега A вылезает
p-implied и получить у него атрибуты не удается.   
PM MAIL ICQ   Вверх
skhilkov
Дата 11.7.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



почитай про LiveConnect, у меня с ним все окей. 


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
Grelloo
Дата 11.7.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 18.3.2006
Где: г. Екатеринбург

Репутация: нет
Всего: нет



LiveConnect связан так-то с javascript, а не с java 
PM MAIL ICQ   Вверх
skhilkov
Дата 11.7.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



Нет, он как раз связывает одно с другим. Благодаря этому ты сможешь вызывать функции JavaScript из Java, и наоборот, соответственно имея в руках такой инструмент можно сделать многое, не говоря уж о получении атрибутов.

Добавлено @ 14:33 
Код


Object elems = ((JSObject) form).getMember("elements");
                    if (elems != null)
                    {
                        Object obj = _scriptObject.eval("document.forms['" + additionalFormName + "'].elements.length");
                        if (obj != null)
                        {Tools.Log("Additional form processing point 3");
                            int count = 0;
                            if (obj instanceof java.lang.Integer)
                            {
                                Integer intCount = (Integer) obj;
                                count = intCount.intValue();
                            }

Вот небольшой пример получения элементов HTML и их атрибутов

Добавлено @ 14:37 
Чуть не забыл - вот как можно создать объект JSObject :
Код

JSObject _scriptObject = JSObject.getWindow(this);
 


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
Grelloo
Дата 25.7.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 18.3.2006
Где: г. Екатеринбург

Репутация: нет
Всего: нет



Хорошо, а как создать JSObject из потока, который получен от url? 
PM MAIL ICQ   Вверх
Woody
Дата 25.7.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.7.2006

Репутация: нет
Всего: нет



А работать с HTML как с XML документом нельзя? 
PM MAIL   Вверх
Grelloo
Дата 25.7.2006, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 18.3.2006
Где: г. Екатеринбург

Репутация: нет
Всего: нет



В принципе наверное можно, но хотелось бы работать как с html. Мне все-таки не понятно, почему не работает пример, который я привел 
PM MAIL ICQ   Вверх
skhilkov
Дата 27.7.2006, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



Цитата(Grelloo @ 25.7.2006,  15:33)
Хорошо, а как создать JSObject из потока, который получен от url?

Не совсем понял про что ты говоришь... можно поподробнее? smile

Добавлено @ 07:02 
погоди.... ты работаешь не с апплетом smile ? То есть тебе надо получать аттрибуты у произвольных html документов? Тогда извини, я тебя неправильно понял. LiveConnect это библиотека для связывания апплета с JavaScript, так что прошу прощенья......  


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0703 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.