Text aus HTML Datei in TXT Datei

Sascha86

Mitglied
Hallo alle zusammen!!

Habe folgendes Problem, ich will aus einer HTML Datei die nur aus Text besteht einen gewissen Abschnitt aus dieser HTML Datei ausschneiden und in eine TXT einfügen. Wie ist das am besten in Java realisieren??
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
es gibt da verschiedene Möglichkeite RegEx suchen per indexOf und per substring den benötigten Teil ausschneiden. Wodurch ist denn dieser Abschnitt definiert?
 

Sascha86

Mitglied
diese HTML besteht NUR aus Tables.. und habs ja schon geschafft diese HTML datei als TXT umzuconvertieren.. aber diesen "gewissen" Abschnitt den ich aus dieser TXT raus zuschneiden und in eine neue TXT zu schreiben ist das Problem...
 

Michael...

Top Contributor
Eine html ist eine Textdatei, da brauch man nix konvertieren. Die Frage ist doch vielmehr woran erkennt man den Abschnitt den den man extrahieren will?
 

Sascha86

Mitglied
um genau zu sein ist das eine HTML vom SIW wo alle Informationen des PCs stehen. Und ich brauch da nur die Rubrik "installed Programes" und da stehen ALLE installieren Programme und die HTML besteht NUR aus Tables
 

Michael...

Top Contributor
Du musst schon ein bisschen präziser werden wie schaut den der Abschnitt aus und was aus dem Abschnitt soll rausgeschrieben werden? Man muss ja schliesslich wissen nach welchem Text man suchen muss.
Aber wie bereits erwähnt geht das prinzipiell mit RegEx oder indexOf und substring
 

Sascha86

Mitglied
Hier ist der Abschnitt den ich aus der HTML Datei ausgeschnitten haben will aber NUR die Programm Namen

<a id="Installed_Programs"></a>

<table WIDTH="100%" BORDER="0" CELLSPACING="0" ALIGN="CENTER">

<CAPTION ALIGN="TOP"><FONT size="5">Installed Programs</FONT></CAPTION>

<tr><td><a href="#TOC">Top</a></td></tr>

<TR ALIGN="LEFT" BGCOLOR="#00FF00">

<TH>Program</TH>
<TH>Publisher</TH>
<TH>Version</TH>
<TH>Date</TH>

<TH>Key</TH>
</TR>

<TR BGCOLOR="#F0F0F0">

<TD>32 Bit HP BiDi Channel Components Installer</TD>
<TD>Hewlett-Packard</TD>
<TD>1.1.0.2</TD>
<TD>2010-03-26</TD>
<TD>{9DE3F260-B88E-42CE-90E7-73C78C37D95E}</TD>
</TR>


<TR>

<TD>Adobe Flash Player 10 ActiveX</TD>
<TD>Adobe Systems Incorporated</TD>
<TD>10.0.32.18</TD>
<TD>&nbsp;</TD>
<TD>Adobe Flash Player ActiveX</TD>
</TR>

<TR BGCOLOR="#F0F0F0">

<TD>Adobe Flash Player 10 Plugin</TD>

<TD>Adobe Systems Incorporated</TD>
<TD>10.0.45.2</TD>
<TD>&nbsp;</TD>
<TD>Adobe Flash Player Plugin</TD>
</TR>

<TR>

<TD>Adobe Reader 9.3.1 - Deutsch</TD>
<TD>Adobe Systems Incorporated</TD>
<TD>9.3.1</TD>

<TD>2010-03-26</TD>
<TD>{AC76BA86-7AD7-1031-7B44-A93000000001}</TD>
</TR>

<TR BGCOLOR="#F0F0F0">

<TD>Apple Software Update</TD>
<TD>Apple Inc.</TD>
<TD>2.1.1.116</TD>
<TD>2009-12-18</TD>
<TD>{6956856F-B6B3-4BE0-BA0B-8F495BE32033}</TD>

</TR>

<TR>

<TD>ArcSoft PhotoStudio 5.5</TD>
<TD>ArcSoft</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>{85309D89-7BE9-4094-BB17-24999C6118FC}</TD>
</TR>


wollt jetzt nicht den kompletten Block reinsetzen
 
Zuletzt bearbeitet:

Thief

Bekanntes Mitglied
Ich weiss jetzt nicht ob das der beste Ansatz ist, aber es gibt nen GUI-losen Browser HTML-Unit.
Ich für meinen Geschmack mag den sehr.

Wenn deine HTML-Datei immer gleich aufgebaut ist, also die Tabelle die du suchst immer die x-te Tabelle von oben ist, kannst du mit HTML-Unit die HTML-Datei einlesen, dir die x-te Tabelle schnappen und dann

a) entweder parsen
b) mit .asText() den sichtbaren Teil ausgeben
c) mit .asXml() den Html-Code ausgeben.
 

Thief

Bekanntes Mitglied
In etwa so (mach das jetzt aus dem Kopf, also keine Garantie das es auch lauffähig ist). Aber es
verdeutlicht wie man ihn verwendet.

Webseite ist übrigens: HtmlUnit - Welcome to HtmlUnit

Java:
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
DomNodeList<HtmlElement> 	tables = page.getElementsByTagName("table")
HtmlElement myTable = tables.get(3);

String source = myTable.asXml();
String test = myTable.asText();

edit:
Hab eben gesehen dass du oben die Tabelle gepostet hast.
So wie ich beschrieben habe kannst du natürlich alle TDs der Tabelle durchgehen, bzw
dir jeweils die erste TD in einem TR (was ja dein Programmname ist) zurückgeben lassen (als
Source oder als Text).

Oder du parst den erhaltenen Text nach einem Muster wie es zu deiner Lösung führt.
 
Zuletzt bearbeitet:
J

Java?

Gast
Hallo,
ich habe ein ähnliches Problem, nur müsste ich den bestimmten Text nicht aus einer HTML Datei, sondern aus sehr vielen HTML Dateien kopieren und als txt speichern. Die HTML-Dateien sind gleich aufgebaut, d.h. die Zwischenüberschriften sind immer gleich, nur der Text zwischen den Überschriften ist unterschiedlich. Bisher musste ich die HTML-Dokumente immer einzeln öffnen, zu der richtigen Überschrift scrollen und dann den Text danach kopieren. Da die Dokument sehr groß sind, dauert alleine das öffnen immer ewig. Daher meine Frage:
Ist es irgendwie möglich, dass diese Textblöcke automatisch in ein einzelnes txt-Dokument gespeichert werden. Also irgendwie, Öffne HTML-Dokument X, suche Überschrift 1, kopiere den gesamten folgenden Text bis Überschrift 2 und füge ihn in das txt-Dokument ein, wiederhole im Anschluss das ganze mit Dokument Y, dann mit Dokumt Z usw. Dabei müsste dann zu den eingefügten Textblöcke noch der Dokumentname dabei stehen, damit ich den Text zuordnen kann. Die HTML-Dokumente sind alle mit eigenem Namen lokal in eigenen Ordnern gespeichert.
Vielen Dank
 
J

javv

Gast
Oder als Zwischenschritt auch erst parsen mit irgendeinem html parser, der auch nicht korrektes HTML kann.
 
J

Java?

Gast
Super vielen Dank schonmal.
Da es aber insg. über 1200 Dateien mit eigenem Dateinamen in über 400 Ordnern sind, gibt es da auch eine möglichkeit, das zu automatisieren? Also dass ich die Dateien nicht selber einzeln öffnen muss, sondern dass dies für mich gemacht wird. Super wäre es, wenn die Dateinamen automatisch ausgelesen werden, in diesen dateien dann die Überschrift gesucht wird und alle kopierten textblöcke in ein einzelnes Textdokument geschrieben werden. So dass, wenn später neue HTML-Dokumente in die Ordner kommen, dieses Textdokument automatisch aktualisiert, also ergänzt wird?
 
J

javv

Gast
Schreib mal eine genau Spezifikation dessen, was vorliegt und was du haben willst. (Verzeichnisstruktur, typischer Dateiinhalt, gewünschte Ausgabe.)

google: java io tutorial files
 
J

Java?

Gast
Hi,
zur Spezifikation, es geht darum, aus Geschäftsberichten von Unternehmen aus der ganzen Welt eine gewisse Textpassage auszuwerten. Da dieser Textblock bei jedem Unternehmen im Bericht immer an der gleichen Stelle steht, habe ich gehofft, dass man diesen Textblock (definiert durch die bei jedem Unternehmen gleichen Überschriften) automatisch auslesen und in ein einzelnes Dokument kopieren kann. Dann müsste ich am Ende nur ein Dokument aufmachen und hätte untereinander nur den Text von den Unternehmen, der mich interessiert und den ich dann auswerten kann. Bisher habe ich jeden Bericht einzeln aufgemacht und die Textstelle gesucht. Das dauert aber ewig, da die Berichte meist zwischen 300 und 500 Seiten haben und ein direkter Vergleich fällt schwer, da man immer zwischen den Dokumenten hin und her klicken muss. Und da demnächst die Geschäftsberichte von 2010 veröffentlicht werden, würden außerdem wieder 400 neue Dokumente dazukommen.

Schreib mal eine genau Spezifikation dessen, was vorliegt und was du haben willst. (Verzeichnisstruktur, typischer Dateiinhalt, gewünschte Ausgabe.)

google: java io tutorial files

Die Verzeichnisstrukur ist folgende:

Hauptordner >> Land 1 >> Unternehmen 1 >> Geschäftsbericht von Unternehmen 1 als HTML
Hauptordner >> Land 1 >> Unternehmen 2 >> Geschäftsbericht von Unternehmen 2 als HTML
Hauptordner >> Land 2 >> Unternehmen 1 >> Geschäftsbericht von Unternehmen 1 als HTML
(...)
Hauptordner >> Land X >> Unternehmen X >> Geschäftsbericht von Unternehmen X als HTML

Der typische Dateiinhalt (im gewünschten Textblock) ist hauptsächlich Fließtext, manchmal Tabellen. Insgesamt jeweils so um die 5-10 Seiten.

Gewünschte Ausgabe: In einem Textdokument untereinander diese Textblöcke mit Unternehmensnamen (bzw. Dateiname reicht eigentlich)

Ist das überhaupt mit JAVA möglich?
Vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M HTML Datei als Text rausspeichern Java Basics - Anfänger-Themen 3
H html-Text mit Formatierung in String speichern Java Basics - Anfänger-Themen 4
D HTML Text von jButton disablen Java Basics - Anfänger-Themen 2
orkano Text einer remote-HTML Seite auslesen Java Basics - Anfänger-Themen 3
J Text aus HTML einlesen Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
A Edit Text Negative Decimalzahlen Java Basics - Anfänger-Themen 18
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
A Text zu Morsecode Java Basics - Anfänger-Themen 8
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
A Werten aus dem Text ausliesten Java Basics - Anfänger-Themen 6
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
M Apache POI PPT - Vertikales Alignment von Text im XSLFAutoShape Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
S Text-To-Speech mit Java Java Basics - Anfänger-Themen 2
L Text-Adventure Java Basics - Anfänger-Themen 3
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
tsom Erste Schritte itext Text als Block auf neue Seite Java Basics - Anfänger-Themen 0
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
H Suche in Text und Markierung Java Basics - Anfänger-Themen 14
H Suche in einem Text Java Basics - Anfänger-Themen 17
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
J Text Datei einlesen Java Basics - Anfänger-Themen 6
L Text und Ganzzahl in einer Dialogbox Java Basics - Anfänger-Themen 5
D Text Adventure Erstellen Java Basics - Anfänger-Themen 10
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D Bild zu Text Java Basics - Anfänger-Themen 4
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
S Ausgabe von Text Formatieren Java Basics - Anfänger-Themen 6
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
A Text teilen und Wörter zählen Java Basics - Anfänger-Themen 7
J Zahlen als Text übersetzen Java Basics - Anfänger-Themen 6
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
Z JSlider - Text wird nich angezeigt Java Basics - Anfänger-Themen 0
A Problem mit set.Text und übergabe Java Basics - Anfänger-Themen 2
A Probleme mit equals und get.Text Java Basics - Anfänger-Themen 12
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
H Text durch Checkbox erscheinen lassen Java Basics - Anfänger-Themen 2
U markierten Text auf Zeichen zuvor/danach pruefen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben