Werte in eine html- Datei schreiben

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

ich möchte in eine bestehende HTML- Datei ein paar werte hineinschreiben,
Die html datei schaut so aus:

Code:
<table border="2" align="center" width="50%" bgcolor="#FFFFFF">
  					<tr>
    	   					<th>Spalte 1</th>
    	   					<th>Spalte 2</th>    
	   					<th>Spalte 3</th>	   
  					</tr>
  					<tr>
    	  					<td>Eintrag 1</td>
    	   					<td>Eintrag 1</td>  
           					<td>Eintrag 1</td>  	   
  					</tr>
   					<tr>
    	   					<td>Eintrag 2</td>
    	   					<td>Eintrag 2</td>   
	   					<td>Eintrag 2</td>  	   
  					</tr>
               // hier ginge es dann so weiter mit meinen Daten ...

				</table>

Meine Frage wäre jetzt, wie das am Besten zu lösen ist, ich lade mir die html- Vorlage in mein Java-Programm, schreibe meine Werte in die <table> und speichere dann die datei wieder raus oder gibts da eine bessere Möglichkeit das irgendwie so zu machen?
 

MQue

Top Contributor
@x.l hat gesagt.:
Komfortabler ist es, das File als DOM-Baum einzulesen. Dann kannst du bedeutend einfacher Elemente hinzufügen/ändern/löschen...


Und wie geht das mit dem tidy, wie komme ich über tidy an die DOM- Struktur heran, gibts da irgendwo vielleicht ein beispiel,

Dankeschön für die Hilfe,
 

@x.l

Bekanntes Mitglied
Ist doch unter dem Link zu lesen:
Code:
Tidy tidy = new Tidy(); 
// tidy.setMakeClean( true );   // Ohne Störungen 
// tidy.setXmlTags( true );     // Eingabe als XML behandeln 
org.w3c.dom.Document node = tidy.parseDOM( in, null );

in kann dann bspw. der InputStream aus deiner Datei sein...

#edit: und der Rest findet sich eigentlich in der API...
 

MQue

Top Contributor
so eine DOM- Struktur durchläuft man ja mit

while(irgendwas.hasNext()) {
Object o = x.next;
}

Das gibts ja so jetzt nicht bei tidy, oder


Ich brauche ja eigentlich nur den HTML- code unten, also ist es am besten wenn ich nach der id="anzeigeInTabelle" suche, mir dann den Node <table .. herausnehme und dann die ganzen Zeilen hinzufüge und dann wieder in meinen Datei schreibe, aber es geht eben um das, wie ich an diesen "Teil"- Node herankomme.

Code:
<table id="anzeigeInTabelle" border="2" align="center" width="50%" bgcolor="#FFFFFF">
                 <tr>
                         <th>Spalte 1</th>
                         <th>Spalte 2</th>   
                     <th>Spalte 3</th>      
                 </tr>
                 <tr>
                        <td>Eintrag 1</td>
                         <td>Eintrag 1</td> 
                          <td>Eintrag 1</td>        
                 </tr>
                  <tr>
                         <td>Eintrag 2</td>
                         <td>Eintrag 2</td>   
                     <td>Eintrag 2</td>        
                 </tr>
               // hier ginge es dann so weiter mit meinen Daten ...

            </table>
 

@x.l

Bekanntes Mitglied
Du erhältst doch ein Document-Objekt. Lass dir also das Tebellenelement mit Document#getElementById geben. Dem fügst du dann einen Knoten (also neue Zeile) hinzu - fertig!

Code:
Tidy tidy = new Tidy(); 
org.w3c.dom.Document node = tidy.parseDOM( in, null );

// hole Tabellenelement
Element tabNode = node.getElementById("anzeigeInTabelle");
// erzeuge neue Tabellenzeile
Element newRow = node.createElement("tr");
Element newCol = node.createElement("td");

// anhängen
newRow.appendChild(newCol);
tabNode.appendChild(newRow);
 

MQue

Top Contributor
OK, kann ich das Ganze dann mit Tidy in eine File schreiben oder eben mit einem normalen FileWriter und von welchen Package ist "Element",

Danke
 

@x.l

Bekanntes Mitglied
???:L Ich weiß nicht wo das Problem liegen soll... mit Tidy#parseDOM erhältst du doch das Document, kannst es dann bearbeiten und wenn du damit fertig bist schreibst du es wieder zurück!

#edit Das kannst du mit einem ganz normalen Writer machen. Element ist aus org.w3c.dom - genauso wie Document.
 

MQue

Top Contributor
OK, so weit hab ich es verstanden, mein problem ist jetzt nur mehr, das ich das Element mit der id nicht finde, ich bekomme immer "null" zurück".
ich habs jetzt mit der HTML- Datei:

Code:
<html>
	<head>
	</head>	
	<body id="booodyyy">		
		Text
	</body>
</html>

versucht, bekomme aber immer noch "null" zurück, wenn ich:

Code:
node = tidy.parseDOM( in, null);
        // hole Tabellenelement
        Element tabNode = node.getElementById("booodyyy");
        System.out.println("Das ist das tabNode: " + tabNode);
        // erzeuge neue Tabellenzeile
        Element newRow = node.createElement("tr");
        Element newCol = node.createElement("td");

        // anhängen
        newRow.appendChild(newCol);
        //tabNode.appendChild(newRow);

ausführe,

gibts dafür eine Erklärung, kann es sein, dass das nur bei einer XML- Datei funkt?

Vielen Dank die Hilfe,
 

@x.l

Bekanntes Mitglied
Es kann schon sein das es daran liegt. Es gibt manchmal Probleme, wenn eine Datei nicht ganz "wohlgeformt" ist.
Hätte allerdings gedacht, dass der Parser damit umgehen kann. Musste vllt. doch noch einen anderen Parser versuchen...
 

MQue

Top Contributor
Aber wohlgeformtere als dieses HTML- Dokument geht nicht mehr, schätz ich mal, ich werds mal mit einem anderen Parser versuchen, vielen Dank für die Tipps
Code:
<html>
   <head>
   </head>   
   <body id="booodyyy">      
      Text
   </body>
</html>
 

MQue

Top Contributor
Nö find keinen richtigen HTM- Parser,
Hätte vielleicht noch jemand eine Idee, wie ich das am Einfachsten realisieren könnte?
 

Escorter

Bekanntes Mitglied
Du musst es ja nicht unbedingt parsen, sondern du suchst nach dem String. Ermittelst dann das Ende des Tags und schreibst an die Stelle den neuen Unhalt, dann fügst du wieder alles zusammen und schreibst es in eine Datei.

Gruß,
Esco
 

MQue

Top Contributor
So ich bin jetzt so weit, dass ich fast an meinene Taxten drann bin.
Ich habe folgendes gemacht:

Code:
<th align="left">Den Text brauche ich</th>

Code:
for(int i = 0; i < child.getLength(); i++) { 
            cchild = child.item(i).getChildNodes();
            for(int j = 0; j < cchild.getLength(); j++) {
                System.out.println("Das sollte mein Text sein: " + cchild.item(j).getNodeValue());
                }
            }

Das problem ist nur, dass jetzt gar nichts mehr ausgegeben wird, wenn ich cchild.item(j).getNodeName hinschreibe, dann wird th ausdgegeben, aber bei der Methode gerNodeValue() bekomme ich gar keine ausgaben,
weiß vielleicht jemand wieso das so ist, ich hab keine Ahnung, ich hab auch schon probiert, dass ich von <th> das child nehme, aber da bekomme ich nur die Ausgabe #text,

Wäre sehr dankbar wenn mir da jemand helfen könnte,

Vielen Dank
 

MQue

Top Contributor
ich habs jetzt, man muss tatsächlich noch getchild().getNodeValue() schreiben dann kommt man hin,
jetzt klappts, auch mit dem hinausschreiben,

Vielen Dank für die Hilfe,
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Mehrere String-Werte in eine Tabellen-Zelle schreiben Allgemeine Java-Themen 8
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
C In DefaultTableModel nachträglich Werte einfügen Allgemeine Java-Themen 2
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
berserkerdq2 Kann man in IJVM maximal 3 Werte im Stack haben? Allgemeine Java-Themen 3
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
I Java: public final Werte: Gute oder schlechte Praxis? Allgemeine Java-Themen 6
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
J Swing UIManager Werte Allgemeine Java-Themen 6
4 Java 2 ArrayListen Werte herauslesen/übernehmen Allgemeine Java-Themen 4
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
KeVoZ_ int Werte in einen String fassen Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Übergebene Werte in Gerätedatei schreiben Allgemeine Java-Themen 2
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
O Klassen Programm in Klassen unterteilt, werte werden nicht mehr übernommen Allgemeine Java-Themen 3
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
R Variablen per HSSF geheime Werte von JAVA an EXCEL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
C Datentypen Enum-Werte Bestanteil von anderem Enum Allgemeine Java-Themen 8
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
A String Array Werte in neues String Array übernehmen Allgemeine Java-Themen 5
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
R Zusammenhängende Werte in 2-dim. Array finden und zählen Allgemeine Java-Themen 3
S Sinnvolles skalieren von Werte-Set? Allgemeine Java-Themen 2
S Keytool: mögliche Werte für Parameter Allgemeine Java-Themen 4
P Werte in Array zählen und Summe der einzelnen Teile ausgeben Allgemeine Java-Themen 10
L Veränderbare Werte zusammenfassen Allgemeine Java-Themen 18
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
J JSONObject Reihenfolge der Werte? Allgemeine Java-Themen 4
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
c_sidi90 Werte an bestimmten Position aus PDF in DB sichern Allgemeine Java-Themen 2
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
T Array Sortieren (null Werte ans Ende) Allgemeine Java-Themen 2
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
C aus einem String einzelne Hex Werte lesen Allgemeine Java-Themen 7
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
J Hex Werte in Bitmap Raster darstellen Allgemeine Java-Themen 16
E Werte übergabe Allgemeine Java-Themen 2
E Werte in andere Klasse übernehmen Allgemeine Java-Themen 8
S Bytes oder Hex-Werte zu Assembler Code? Allgemeine Java-Themen 6
P Methoden und Werte Allgemeine Java-Themen 17
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
N unzählige Werte am besten speichern(?) Allgemeine Java-Themen 2
D Spielerwechsel über boolsche Werte läuft inkorrekt Allgemeine Java-Themen 6
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
K Datenhaltungsklasse für wenige Werte? Allgemeine Java-Themen 4
T JProgressbar ändert werte nicht Allgemeine Java-Themen 28
K need help ; Werte aus einer Datei auslesen Allgemeine Java-Themen 4
C Eingegebene Werte werden nicht gezeichnet Allgemeine Java-Themen 2
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
hdi dynamische return-Werte Allgemeine Java-Themen 15
R Double Werte aus byte[] auslesen Allgemeine Java-Themen 5
T Wurfweitenberechnung: X-Werte bei extremen Werten falsch. Allgemeine Java-Themen 15
G Excel Werte / Zellen formatieren Allgemeine Java-Themen 5
G Werte bei Rekursion viel höher als erwartet Allgemeine Java-Themen 3
P Bedeutung der Process.exitValue() Werte? Allgemeine Java-Themen 3
C String to hex und hex-Werte löschen Allgemeine Java-Themen 2
D Suche sowas wie Map nur für mehrere Werte Allgemeine Java-Themen 13
M Werte im Browser aktualisieren Allgemeine Java-Themen 2
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
D werte in excelltabelle schreiben Allgemeine Java-Themen 5
N Werte Von C++ nach Java über den Stream möglich? Allgemeine Java-Themen 8
S JFreeChart LineChart Punkte über NULL Werte hinweg verbinden Allgemeine Java-Themen 5
G Werte zusammenfassen! Allgemeine Java-Themen 3
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W PrintWriter (PrintStream) sendet falsche Werte Allgemeine Java-Themen 18
Y Methode soll 2 Werte zurückliefern Allgemeine Java-Themen 7
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
D Werte aus drei Auswahllisten Allgemeine Java-Themen 5
P JSlider nur bestimmte werte geben Allgemeine Java-Themen 2
P JavaCode verschlüsseln / verschlüsselte Werte Allgemeine Java-Themen 3
D JTextfield für double werte Allgemeine Java-Themen 2
D Spezielles Eingabefeld für Numerische Werte in Swing Allgemeine Java-Themen 2
D Werte aus mehreren getMethoden auslesen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben