Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение атрибутов и вложенных тегов в HTML-документе / 2 сообщений из 2, страница 1 из 1
10.07.2006, 10:23
    #33841293
Grelloo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение атрибутов и вложенных тегов в HTML-документе
Проблема следующяя:
имеется произвольный HTML-документ, из которого требуется извлечь тег <A>, затем его
атрибуты и в зависимости от них обрабобтать вложенный тег <IMG>
Пока что у меня получилось следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
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 и получить у него атрибуты не удается.
...
Рейтинг: 0 / 0
11.07.2006, 15:12
    #33845303
yelena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение атрибутов и вложенных тегов в HTML-документе
test.html

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<html>
<head>
<title></title>
</head>
<body>
<a href="page1.html" target="_blank"><img src="/img/img1.jpg" width="100" height="50" alt="" /></a><br />
<a href="page2.html" target="_blank"><img src="/img/img2.jpg" width="100" height="50" alt="" /></a><br />
<a href="page3.html" target="_blank"><img src="/img/img3.jpg" width="100" height="50" alt="" /></a>
</body>
</html>


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
 package  parse_html;

 import  org.w3c.dom.NodeList;
 import  org.w3c.tidy.Tidy;
 import  org.w3c.dom.Document;
 import  java.io.FileInputStream;
 import  java.io.File;
 import  java.io.FileNotFoundException;
 import  org.w3c.dom.NamedNodeMap;
 import  org.w3c.dom.Node;

 public   class  Parse_html {
     public  Parse_html() {
    }

     public   static   void  main(String[] args) {
        
        Tidy tidy =  new  Tidy();
        Document doc =  null ;
         try  {
            doc = tidy.parseDOM( new  FileInputStream( new  File("test.html")),  null );
            
            NodeList links = doc.getElementsByTagName("a");
            
             for  ( int  i= 0 ; i<links.getLength(); i++) {

                System.out.println(links.item(i).getNodeName());

                NamedNodeMap a_attr = links.item(i).getAttributes();
                
                 for  ( int  j= 0 ; j<a_attr.getLength(); j++) {
                    System.out.println(a_attr.item(j).getNodeName() + " : " + a_attr.item(j).getNodeValue());
                }
                
                Node img = links.item(i).getFirstChild();
                
                System.out.println(img.getNodeName());
                
                NamedNodeMap img_attr = img.getAttributes();
                
                 for  ( int  j= 0 ; j<img_attr.getLength(); j++) {
                    System.out.println(img_attr.item(j).getNodeName() + " : " + img_attr.item(j).getNodeValue());
                }                
            }
            
        }  catch  (FileNotFoundException ex) {
            ex.printStackTrace();
        }
    }
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение атрибутов и вложенных тегов в HTML-документе / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]