JDOM Tabelle lesen

nrg

Top Contributor
Hallo Zusammen,

möchte grad mit JDOM eine XML lesen. Das funktioniert auch alles nur, weiß ich net ganz, wie ich die table auslesen soll. Bin bis jetzt leider nicht schlau geworden :/.

xml sieht z.b. so aus:
Code:
<root>
	<auftrag type="test">
		<title>Das ist ein Auftrag</title>
		<field name="BELEGNUMMER">1111111</field>
		<field name="Position"><![CDATA[<table><tr><td title="Artikelnummer">222222</td><td title="Betrag_Netto">100</td></tr><tr><td title="Artikelnummer">33333</td><td title="Betrag_Netto">200</td></tr></table>]]></field>
	</auftrag>
</root>

Ich hab mich schon versucht bis <field name="Position"> durchzuhangeln aber getChild("table") liefert dann null :(

hat jemand einen tipp?

Danke und Grüße
 

nrg

Top Contributor
ok danke euch. ich schau mal am montag, wie ich mich dann da am besten durchiterieren kann und meld mich dann nochmal.
 

nrg

Top Contributor
so. mit .getContent bekomme ich schonmal das CDATA Element. Viel weiteriterieren kann ich dann leider nicht.
getValue liefert dann:
<table><tr><td title="Test">111111</td><td title="Test2">222222</td> ....

muss ich das jetzt selbst parsen oder kann ich dazu auch JDOM benutzen? Jetzt mal logisch gesehn. Wenn ich das wieder in eine XML packe kann ich mich mit JDOM wieder ohne probleme "durchhangeln" (Hab CDATA mal aus der InputXML gelöscht und es hat ohne Probleme funktioniert). Ich hab schon geschaut, das iwie wieder an meine Root dranzuhängen um weiter durchzugehen aber bis jetzt ohne erfolg. Oder kann ich das vllt in einer DTD vordefinieren? Das wäre natürlich die Option, die am meisten Freiheiten zur Verfügung stellt.

Kann mir vllt jemand da nochmal einen Tipp geben?

Danke schonmal

edit: ich aktualisiere mal meine Frage:

Wie kann ich CDATA in XPath einbinden?
 
Zuletzt bearbeitet:

musiKk

Top Contributor
Sicher, dass dort ein CDATA-Element hin muss (siehe Verwendung)? CDATA ist nur für Zeichenketten gedacht (Character DATA) und die haben - zumindest was Tools, die mit XML arbeiten betrifft - keine innere Struktur mehr.

Wenn Du das nicht beeinflussen kannst, dann könntest Du natürlich on the fly ein XML-Dokument aus dem String erzeugen und dieses parsen lassen. Das steht dann aber nicht mehr im Kontext der umgebenden Elemente.

Auch auf XPath sollte das keine Auswirkungen haben (Google benutzen...); die Inhalte der CDATA-Abschnitte sind einfache Zeichenketten.
 

nrg

Top Contributor
Wenn Du das nicht beeinflussen kannst, dann könntest Du natürlich on the fly ein XML-Dokument aus dem String erzeugen und dieses parsen lassen. Das steht dann aber nicht mehr im Kontext der umgebenden Elemente.

leider kann ich es nicht beeinflussen. also Prinzipiell habe ich es mit dom4j jetzt geschafft in eine CDATA struktur zu gehen.
Java:
DocumentHelper.parseText(String s)

Dadurch kann ich quasi einfach mit getContent den Wert der CDATA-Tabelle zurückgeben lassen und diesen dann in ein Document parsen. Dann wieder mit getRoot.. einsteigen.

Aber mittlerweile ist mir XPath lieber, als mein selbst gecodeter Parser. Vllt kurz etwas mehr Hintergrundinformation:

Ich les von einer properties-Datei Strings ein, die z.B. einen Wert aus einer XML-Struktur in ein Array schreiben soll.
z.B.:
Code:
field1 = <root><file><field name="Kundennummer">
Das funktioniert sogar auch mit CDATA:
Code:
field1 = <root><file><field name=Position><!CDATA><table><tr><td title=Artikelnummer>

Damit könnte ich schon unschön zu einer Lösung kommen.

Schöner wäre für mich mittlerweile XPath (dazu brauch ich keinen Logik für Falscheingaben implementieren und kann einfach auf != null abprüfen):
Code:
field1 = //files/file/field[@name='Kundennummer']

Ich probiere jetzt mal mit 2 XPath Parametern einen Einstieg in die CDATA Struktur und einen XPath in der CDATA Stuktur zu übergeben:
Code:
einstieg = //files/file/field[@name='Position']
field1 = //table/tr/td[@title='Artikelnummer']

Mal sehen, ob ich damit Erfolg habe. Vllt hat ja von euch noch jemand eine Idee.

Danke und Grüße

edit:

Java:
		SAXReader reader = new SAXReader();
		Document doc = reader.read( "test.xml" );
        Node n = doc.selectSingleNode( "//files/file/field[@name='Position']" );
        doc = DocumentHelper.parseText( n.getText() );
        n = doc.selectSingleNode( "//table/tr/td[@title='Artikelnummer']");
        System.out.println( n.getText() );

funktioniert und damit wäre ich soweit auch zufrieden. Falls jemand dennoch was besseres einfallen sollte, bin ich gerne dafür offen :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P XML Dokumente von JDOM an ein WebService senden! Allgemeine Java-Themen 2
F XML zu JTable mit JDOM Allgemeine Java-Themen 2
J XML: JDOM + builder.build() hängt einfach Allgemeine Java-Themen 3
K Kein schließendes Tag bei leerem Element mit JDOM Allgemeine Java-Themen 8
P XML, JDOM Allgemeine Java-Themen 8
MQue jdom-1.0.zip Allgemeine Java-Themen 5
F Probleme beim speichern einer xml datei mit jdom Allgemeine Java-Themen 5
G Performance JDOM - DOM - eigene HashMap (SAX) Allgemeine Java-Themen 2
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
L Hash-Tabelle Allgemeine Java-Themen 2
F Tabelle aus CSV, 2 dimensionale HashMap? Allgemeine Java-Themen 4
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
J Datentypen in Java Tabelle Allgemeine Java-Themen 2
T 4x4 Tabelle als Bitboard darstellen Allgemeine Java-Themen 5
P Reordering einer Tabelle im Frontend Allgemeine Java-Themen 1
S 2-spaltige Ausgabe als Tabelle ausgeben Allgemeine Java-Themen 12
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
G Tabelle wird nicht richtig dargestellt Allgemeine Java-Themen 9
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
Iron Monkey Spalte der Tabelle abwechselnd färben Allgemeine Java-Themen 8
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
K HTTP Auslesen einer Tabelle Allgemeine Java-Themen 8
S EAN-Code Tabelle für CD's Allgemeine Java-Themen 2
R Datum in Excel Tabelle eintragen Allgemeine Java-Themen 6
A Tabelle mit iText erstellen Allgemeine Java-Themen 3
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
A Excel Tabelle in JFrame darstellen Allgemeine Java-Themen 6
K LibreOffice Tabelle Dateien im Format .ods bearbeiten Allgemeine Java-Themen 2
M In einer Tabelle rechnen Allgemeine Java-Themen 12
D Tabelle umwandeln Allgemeine Java-Themen 12
M Rein informativ - Daten aus Excel-Tabelle in Java-Programm importieren Allgemeine Java-Themen 3
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
S Javascript & MSAccess Tabelle Allgemeine Java-Themen 5
Weiti Programm zum erstellen einer tabelle aus textdateien Allgemeine Java-Themen 24
R Tabelle - Berechnung der "Zeilenart" Allgemeine Java-Themen 2
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
A Text durchgestrichen in einer Tabelle darstellen Allgemeine Java-Themen 2
D Spaltenbereite einer Tabelle Allgemeine Java-Themen 2
J Leerer Spalteninhalt in einer Tabelle in JSP Allgemeine Java-Themen 5
M Datum in Tabelle formatiert ausgeben Allgemeine Java-Themen 3
P Datenbank Tabelle spiegeln Allgemeine Java-Themen 22
G Probleme mit dem erstellen einer Tabelle Allgemeine Java-Themen 6
G Tabelle in ein Array schreiben Allgemeine Java-Themen 3
S Excel Tabelle Allgemeine Java-Themen 8
G HTML Tabelle auslesen Allgemeine Java-Themen 8
J Problem mit dem aktualisieren der Tabelle Allgemeine Java-Themen 8
B Tabelle. bei Wertänderung was bestimmtes machen Allgemeine Java-Themen 3
S Werte in Tabelle einfügen! Allgemeine Java-Themen 9
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
M Daten in Excel Tabelle schreiben? Allgemeine Java-Themen 7
H Hash Tabelle einlesen und die Werte an ein Array übergeben Allgemeine Java-Themen 10
D iText: Tabelle in Footer einfügen Allgemeine Java-Themen 6
H Leere Tabelle initialisieren Allgemeine Java-Themen 2
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
G Dateien lesen Allgemeine Java-Themen 3
OnDemand Excel lesen wie CSV Allgemeine Java-Themen 7
S Textdatei statt von Dateisystem aus .jar lesen Allgemeine Java-Themen 3
oskarS85 GeoTiff NDVI pixelweise lesen Allgemeine Java-Themen 2
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
OnDemand CSV lesen flexible Spalten Allgemeine Java-Themen 3
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
L Input/Output Kassenzettel lesen aus einem Bild Allgemeine Java-Themen 2
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
A File lesen Codierung Charset Allgemeine Java-Themen 5
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
D Mit Java PHP hashmap lesen Allgemeine Java-Themen 1
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
A Steuerung von Spiel aus Datei lesen Allgemeine Java-Themen 0
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
OnDemand Java Barcode lesen Allgemeine Java-Themen 4
F Json in sql speichern und lesen Allgemeine Java-Themen 10
K Classpath Alle Classen aus einem Package lesen Allgemeine Java-Themen 7
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
H Input/Output .txt Datei in Jar lesen Allgemeine Java-Themen 6
F Lesen effizienter als schreiben? Allgemeine Java-Themen 4
RalleYTN REST API ResponseType application/pdf lesen Allgemeine Java-Themen 0
R Inputstream lesen mit Pointer Allgemeine Java-Themen 0
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
javampir Input/Output Effizienz beim binären Lesen einer Datei Allgemeine Java-Themen 6
D Datentyp von Unbounded Wildcards lesen Allgemeine Java-Themen 2
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
B SMS von Vodafone Mobile Connest mit JAVA-Programm lesen Allgemeine Java-Themen 0
2 String Array in Datei schreiben und wieder davon lesen Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben