[Java] HTMLDocument vullen

Pagina: 1
Acties:

  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
Ik probeer nu al een tijdje het DOM van een HTML pagina beschikbaar te krijgen voor bewerking. Wat ik wil bereiken is een org.w3c.dom.htm.HTMLDocument object krijgen dat gevuld is met de inhoud van een webpagina.
Ik heb alleen geen flauw idee hoe ik dit voor elkaar moet boxen. Een van de problemen is het feit dat er ook nog een andere HTMLDocument klasse bestaat. Maar die biedt niet de toegang tot de HTML DOM die ik wil.

Hoe kan ik dus een gevuld org.w3c.dom.htm.HTMLDocument krijgen?

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

(na 1 minuut googlen)
Kun je geen document genereren uit een DOMImplementation dmv de createDocument methode? (http://java.sun.com/j2se/...ring,%20java.lang.String))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
Voor zover ik kan zien kun je daar wel een document mee aanmaken maar is dat document nog niet gevuld. Ook levert het een Document type op als je getDocument gebruikt en geen HTMLDocument. Maar ik denk dat die nog wel te casten moet zijn, als ik zover zou komen. Ik heb die nl. al eens doorzocht maar was mijns inziens dus niet bruikbaar...

[ Voor 31% gewijzigd door Deddiekoel op 15-06-2004 17:09 ]

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 23-05 16:37

voodooless

Sound is no voodoo!

Do diamonds shine on the dark side of the moon :?


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik weet niet of je hier iets mee kan:
http://jakarta.apache.org/ecs/index.html

(Is eigelijk geloof ik ook alleen om documenten via een dom aan te maken).

  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
Een nieuw document aanmaken vanuit een string is nog niet zo erg. Zo lang als het maar om een grote string gaat...
Die DOMParser zag er iig interessant uit...helaas is dat geen standaard klasse. Ik wil het maatwerk toch het liefst zelf doen!

Het doel dat ik wil bereiken is dat ik met wat redelijke vrijheid door HTML pagina heen kan lopen. Zodat ik tabellen, formulieren en plaatjes etc makkelijk kan bekijken etc...

[ Voor 46% gewijzigd door Deddiekoel op 16-06-2004 09:40 ]

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


Verwijderd

kijk eens hoe het onder httpunit gedaan wordt? daar kun je toch HTML inlezen van een link, clicks genereren en de resultaten van je clicks analyseren (aantal rows/columns in je tabel, of een bepaalde link aanwezig is, ...) en ik denk dat dat wel via het inlezen in een DOM tree gebeurd....

  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
Ik zal eens gaan kijken. Ondertussen ben ik het volgende tegen gekomen. Darmee wordt XML ingelezen in een DOM document. Dit zou voor HTML ook moeten werken toch?
code:
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
// jdk1.4.1
import java.io.File;
import javax.xml.parsers.*;
import org.w3c.dom.*;

// using DOM
public class HowtoListerDOM {
 public static void main(String[] args) {
   File file = new File("howto.xml");
   try {
     DocumentBuilder builder =
       DocumentBuilderFactory.newInstance().newDocumentBuilder();
     Document doc = builder.parse(file);

     NodeList nodes = doc.getElementsByTagName("topic");
     for (int i = 0; i < nodes.getLength(); i++) {
       Element element = (Element) nodes.item(i);

       NodeList title = element.getElementsByTagName("title");
       Element line = (Element) title.item(0);

       System.out.println("Title: " + getCharacterDataFromElement(line));

       NodeList url = element.getElementsByTagName("url");
       line = (Element) url.item(0);
       System.out.println("Url: " + getCharacterDataFromElement(line));

     }
   }
   catch (Exception e) {
      e.printStackTrace();
   }
 }
 public static String getCharacterDataFromElement(Element e) {
   Node child = e.getFirstChild();
   if (child instanceof CharacterData) {
     CharacterData cd = (CharacterData) child;
       return cd.getData();
     }
   return "?";
 }
}

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 23-05 16:37

voodooless

Sound is no voodoo!

In theorie zou dat ook wel moeten werken ja. Helaas is HTML niet perfect XML conform (XHTML wel), en dus zal de DOM parser fouten vinden. Je hebt dus een echte HTML DOM parser nodig!

Dit org.cyberneko.html.parsers.DOMParser die je in mijn link vind begint met org.blablab, dus ik vermoed dat die ook gewoon gratis en vrij te verkrijgen/gebruiken is.

Do diamonds shine on the dark side of the moon :?

Pagina: 1