# HTML-Datei einlesen/parsen



## davidek (1. Feb 2007)

Hi, Leute!

Ich habe eine kurze Frage.

Ich habe vor ein HTML-Dokument einzulesen. Parsen heißt das, glaub' ich.
Ich glaube das spielt keine Rolle, aber ich habe die Datei nicht lokal verfügbar, sondern sie ist "im Internet" (Ihr wisst schon was ich meine...).

Ich habe schon viel darüber recherchiert und habe herausgefunden, das es dafür sehr sehr viele Klassen und Möglichkeiten gibt, wie man das anstellen kann.

Ich habe gute Kenntnisse über HTML und CSS. (Glaube ich jedenfalls.)
Ich bin Anfänger in Java-Programmierung, also sollte das System einfach zu handhaben sein.
Ich will auch erstmal noch nicht großartig die ganzen verschiedenen Elemente unterscheiden.

Für den Anfang würde es mir eigentlich reichen, dass ich einfach den ganzen Text vom HTML-Body, also alles was zwischen <body> und </body> steht, außer die wiederum untergeordneten Tags, in einen String bekomme.
Später will ich dann noch ein bischen zwischen den anderen Tags unterscheiden...

Welche Klasse/welches System könnt ihr mir unter Beachtung der oben genannten Sachen empfehlen?


Ich bin für jede Antwort dankbar   

MfG
davidek


----------



## EOB (1. Feb 2007)

hi, also sooo einfach wird das sicher nicht. ich poste hier mal den code zum einlesen einer datei in einen string. 


```
public class Test {
    public static void main(String[] args) {
	try {
	    // Create a URL for the desired page
	    URL url = new URL("http://...../index.htm");

	    
	    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
	    String str;
	    String s = "";

	    while ((str = in.readLine()) != null) {
		s += (str + "\n");

	    }
	    in.close();

	    System.out.println(s);
	} catch (MalformedURLException e) {
	} catch (IOException e) {
	}
    }
}
```

am ende steht der gesamte in halt in _s_. eben ein string, dann musst du darauf die regexe anwenden.

viele gruesse


----------



## davidek (1. Feb 2007)

Danke für die Antwort.

Deine Methode ist jetzt die Variante, wenn mal alles selber machen würde.

Aber es gibt doch sicherlich auch schon Klassen die extra für das Einlesen von HTML-Dateien sind.
Es gibt doch sogar in der Standard-Bibliothek schon den Swing HTML Parser.

Ich will nicht alles von Grund auf selber schreiben. (Ich kenne schon den Begriff Kapselung  :###   .)


----------



## sparrow (1. Feb 2007)

Was ist denn das Ziel dieses Parsens?
Also was genau hast du denn vor?


----------



## Guest (1. Feb 2007)

Hallo, genau der thread den ich suche...
ich bin allerdings nicht ganz so bewandert im java programmieren.
ich möchte eine als Text-Datei generierte durch Semikolon getrennte Datenreihe (Temperatur aussen, innen, Luftdruck etc.) einlesen und die Einzelwerte auf meiner Wetterseite darstellen.
Die Text(Datendatei) soll alle 10 min auf den Server geladen werden und sobald man die Seite aufruft die aktuellen Werte  eingelesen werden...
klingt kompliziert, ich weiß
Daten sehen so aus:
20.8;12.5;1028,5 etc.
Für jede Hilfe dankbar (leider habe ich kein PHP seitens meines providers...,daher in Java)
Matthias


----------



## FatFire (1. Feb 2007)

Gast hat gesagt.:
			
		

> Hallo, genau der thread den ich suche...


Hm...wenn ich mir das Problem anschaue...nein, eigentlich geht es um was völlig anderes...


> ich bin allerdings nicht ganz so bewandert im java programmieren.


Macht nix, dafür sind wir ja da.


> ich möchte eine als Text-Datei generierte durch Semikolon getrennte Datenreihe (Temperatur aussen, innen, Luftdruck etc.) einlesen und die Einzelwerte auf meiner Wetterseite darstellen.
> Die Text(Datendatei) soll alle 10 min auf den Server geladen werden und sobald man die Seite aufruft die aktuellen Werte  eingelesen werden...
> klingt kompliziert, ich weiß
> Daten sehen so aus:
> ...


Also, wie willst Du das jetzt mit Java machen? Als Applet? Anders wohl nicht, denn wenn Dein Provider kein PHP unterstützt, wird er wohl kaum JSP oder sowas unterstützen...wenn Du sowieso alle 10 min eine Textdatei rauflädst...warum dann nicht gleich ein aktualisiertes HTML-Dokument? Oder wie wär es mit JavaScript und XMLHttpRequest? Dann kann auch die Textdatei und HTML-Datei fix bleiben...das zusammenbasteln der Seite übernimmt dann JavaScript...ein bißchen mehr Randinformationen, wie Du es überhaupt realisieren willst, wäre schön.


----------



## davidek (1. Feb 2007)

> Was ist denn das Ziel dieses Parsens?
> Also was genau hast du denn vor?



Ich Programmiere gerade Internetzugang für einen Graphik-fähigen Taschenrechner (so ein ding was auch kurven zeichnen kann, kennt vllt mancher auser schule...).
Ich will den text der internet seite einlesen, dann werden die einzelnen buchstaben in zahlen umgewandelt und in ein array gepackt, das dann an den taschenrechner gesendet wird.

um den ganzen rest habe ich mir schon meine sorgen gemacht. ich brauch nur den den zugriff auf die html-files.


----------



## Guest (1. Feb 2007)

Hallo, FatFire, danke für die Antwort. Ja anders als mit einem applet gehts wohl nicht.
Das Heraufladen soll natürlich automatisch laufen...(direkt von der Wetterstation) und die kann kein html...sondern nur textfiles erzeugen. aussehen soll das Ganze mal so, allerdings nicht über einen "Umweg"-Server erzeugt, sondern selbst
www.greiner-petter.de/html/wetter2.html

Matthias


----------



## FatFire (2. Feb 2007)

@Gast: Wäre natürlich schon besser, wenn Du jetzt ein konkretes Problem hättest. Also wenn Du schon etwas Code zum Zeigen hättest, wo dann zu sagen wäre "da und da hab ich das und das Problem". Ansonsten würde das Ganze schon eher einer Auftragsarbeit nahekommen, die man sich ja normal nicht umsonst gut bezahlen lässt  :wink: Hast Du also schon damit angefangen oder bisher nur die Projektidee aber noch nichts konkretes fertig?


----------



## JAVAn00b (2. Feb 2007)

hi,

versuch mal JEditorPane...

dem kannst du sagen was das für ein text ist. dann brauchst du keine semikolon oder so. denn er zeigt das wie word an.

MFG


----------

