XML-File auslesen, alles leer?

Status
Nicht offen für weitere Antworten.

Alerion

Mitglied
Hallo,

Ich versuche mit DOM eine XML-Datei auszulesen und diese dann erstmal in einem Textfenster anzuzeigen. Aus irgendeinem Grund mag das aber nicht so, wie ich, das Fenster bleibt nämlich leer. Kann sich jemand den Code mal ankucken und mir sagen, wo der Fehler liegt?

Mein Java Code:

Code:
import java.io.*;
import java.awt.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.awt.event.*;
import javax.swing.*;

public class JDOMParse 
{
	static Document document;
	JDOMParseFenster fenster=new JDOMParseFenster(800,500,100,100,"JDOMParse");
	JDOMParseFenster ErrorFenster=new JDOMParseFenster(500,2000,100,600,"JDOMParse Fehlermeldung");
	

	/**
	 * @param args
	 */
	public static void main(String args[]) {		
		try
		{
			String LookAndFeel=UIManager.getSystemLookAndFeelClassName();
			UIManager.setLookAndFeel(LookAndFeel);
		}
		
		catch (Exception e)
		{
			System.out.println("Fehler " + e);
		}
		
		String param = new String("C:\\Dokumente und Einstellungen\\Alerion\\Eigene Dateien\\Eigene Dokumente\\Artikelliste.xml");
		
		JDOMParse jdomparser = new JDOMParse(param);

	}
	
	public JDOMParse(String param)
	{
		parsing(param);
	}

	public void parsing(String param)
	{
		File datei=new File(param);
		boolean laden=datei.canRead();
		if (laden == true)
		{
			try
			{
				DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
				DocumentBuilder builder = factory.newDocumentBuilder();
				document = builder.parse(datei);
			}
			
			catch (SAXParseException error)
			{
				ErrorFenster.ausgabe("\n+++Parse Error++++" + "\nZeile: " + error.getLineNumber() + "\nDatei: " + error.getSystemId());
				ErrorFenster.ausgabe("\n" + error.getMessage());
			}
			
			catch (ParserConfigurationException pce)
			{
				pce.printStackTrace ();
			}
			
			catch (IOException ioe)
			{
				ioe.printStackTrace();
			}
			
			catch (Throwable t)
			{
				t.printStackTrace();
			}
		}
		
		else
		{
			ErrorFenster.ausgabe("Datei existiert nicht!");
		}
		
		auswertung();
	}
	
	public void auswertung()
	{
		int a, anz_untertags, b;
		NodeList tagliste=document.getElementsByTagName("Artikelliste");
		NodeList ChildTags;
		int anz=tagliste.getLength();
		Node das_tag;
		String inhalt="";
		short TagTyp;
		System.out.println("Anzahl" + anz);
		for (a=0;a<anz; a++)
		{
			ChildTags=tagliste.item(a).getChildNodes();
			anz_untertags=ChildTags.getLength();
			System.out.println("Anzahl Untertags" + anz_untertags);
			for(b=0; b<anz_untertags; b++)
			{
				das_tag=ChildTags.item(b);
				TagTyp=das_tag.getNodeType();
				if (TagTyp==Node.ELEMENT_NODE)
				{
					System.out.println("Inhalt" + das_tag.getFirstChild());
					inhalt=inhalt + das_tag.getFirstChild().getNodeValue() +"\t\t";
				}
			}
			fenster.ausgabe(inhalt);
			inhalt="\n";
		}
	}
}

class JDOMParseFenster extends JFrame implements WindowListener
{
	JTextArea textbereich;
	public JDOMParseFenster(int breite, int hoehe, int posx, int posy, String name)
	{
		setSize (breite, hoehe);
		setLocation (posx, posy);
		setTitle (name);
		textbereich=new JTextArea();
		Container content = getContentPane();
		content.add(textbereich);
		addWindowListener(this);
		show();
	}
	
	public void ausgabe(String s)
	{
		textbereich.append(s);
	}
	
	public void windowClosing(WindowEvent evt)
	{
		dispose();
		System.exit(0);
	}
	public void windowOpened(WindowEvent evt){}
	public void windowIconified(WindowEvent evt){}
	public void windowDeiconified(WindowEvent evt){}
	public void windowClosed(WindowEvent evt){}
	public void windowActivated(WindowEvent evt){}
	public void windowDeactivated(WindowEvent evt){}
}

Die XML-Datei:

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Artikelliste>
  <Artikel>
    <Name>Kartoffeln</Name>
    <Kategory>Gemüse</Kategory>
    <Einheit>kg</Einheit>
    <Menge>2</Menge>
    <PPE>2,99</PPE>
    <gekauft>1</gekauft>
  </Artikel>
  <Artikel>
    <Name>Milchn</Name>
    <Kategory>Milchprodukt</Kategory>
    <Einheit>l</Einheit>
    <Menge>2</Menge>
    <PPE>0,99</PPE>
    <gekauft>1</gekauft>
  </Artikel>
  <Artikel>
    <Name>Leberwurst</Name>
    <Kategory>Wurst</Kategory>
    <Einheit>g</Einheit>
    <Menge>500</Menge>
    <PPE>2,99</PPE>
    <gekauft>1</gekauft>
  </Artikel>
  <Artikel>
    <Name>Bier</Name>
    <Kategory>Getränke</Kategory>
    <Einheit>Kasten</Einheit>
    <Menge>1</Menge>
    <PPE>13,99</PPE>
    <gekauft>1</gekauft>
  </Artikel>
  <Artikel>
    <Name>Erbsen</Name>
    <Kategory>Gemüse</Kategory>
    <Einheit>Glas</Einheit>
    <Menge>1</Menge>
    <PPE>2,99</PPE>
    <gekauft>1</gekauft>
  </Artikel>
</Artikelliste>
 

foobar

Top Contributor
Hast du mal getraced?

Ich vermute, daß du nicht über die Element sondern über irgendwelche Textknoten iterierst. Du kannst das auch viel einfacher lösen indem du immer mit getElementsByTagName arbeitest. Ungefähr so:

Code:
NodeList tagliste=document.getElementsByTagName("Artikel");

for (int i =0; i < tagliste.getNodeCount(); i++)
{
   Element elemArticle = (Element)tagliste.getNode(i);
   // jetzt kannst du auf elemArticle wieder ein getElementsByTagName machen und hast keine Probleme mit Textknoten
}

P.S. Es ist viel einfacher direkt nach Artikel zu suchen, weil Artikelliste das Root-Element ist und sowieso nur einmal vorkommen kann, ansonsten meckert der Parser schon beim Einlesen.
 

Alerion

Mitglied
Ich hab den Fehler gefunden. Ich hätte da gleich "Artikel" reinschreiben sollen. Jetzt funktioniert's. Danke.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Xml File schematisch auslesen XML & JSON 2
X XML File auslesen/parsen u. in ne Hashmap speichern XML & JSON 2
M XML File während Applet-Start auslesen? XML & JSON 10
A Internetinhalte auslesen und in einem XML-File speichern XML & JSON 4
M *.group() in File auslesen XML & JSON 4
T Prob: Auslesen XML File mit JDOM XML & JSON 2
W Embedded fonts-file ttf in ein existierendes Pdf einfügen / embedden XML & JSON 1
E JAXB und java.nio.file.Path XML & JSON 4
Trèfle Formatierung v. JSON File XML & JSON 7
L login - Java IOException jaas.config File or Directory not present XML & JSON 1
G Probleme mit Jsoup in .jar File XML & JSON 11
K JAR-File mit XML-Datei XML & JSON 1
JBoby Yaml File lesen und in Objekte umwandel (SnakeYAML / YamlBeans) XML & JSON 0
O XML Zugriff auf Entity File XML & JSON 0
B xsd-Datei ins jar file XML & JSON 5
S XLSX-File NoSuchMethodError XML & JSON 7
M SEPA XML file XML & JSON 11
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
S XML file lässt sich in Eclipse nicht erstellen XML & JSON 2
M <root> node in bestehendes XML-File XML & JSON 8
jstei001 .xsd File wärend der Laufzeit einlesen und XMl rausschreiben XML & JSON 5
L Datenstruktur in XML-File schreiben XML & JSON 2
Q XML-File als Objekt in Java XML & JSON 6
G DXF-File schreiben XML & JSON 17
GUI-Programmer java.io.File aus .jar beziehen XML & JSON 6
B XML file erstellen und in lesbarer form speichern XML & JSON 2
M XML File generieren XML & JSON 3
S Aus XML-File eine Baumstruktur erzeugen XML & JSON 5
N XML File aus Internet korrekt mit absätzen formatiert abspeichern XML & JSON 10
J xmlParser/-Writer: DTD in seperates File auslagern XML & JSON 4
C Xml file gegen eine DTD validieren XML & JSON 3
G Problem beim schreiben von XML in eine File XML & JSON 2
S Premature end of file XML & JSON 7
T File öffnen XML & JSON 6
B XML file für schtasks XML & JSON 5
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
J File objekt in xml speichern? XML & JSON 12
G XMLEncoder: discarding statement LinkedList.add(File) XML & JSON 16
M Unhierarchisches XML-File mit DOM-Parser auswerten XML & JSON 5
X Einzelne Tags rausnehmen aus einem großen XML-file XML & JSON 4
E XOM setzen von XML-Schema declaration beim erzeugen XML-File XML & JSON 2
M XSL-File für Transformation verwenden XML & JSON 3
M XML-File verabeiten XML & JSON 19
S Geändertes XML-File wieder abspeichern. XML & JSON 10
D XML-file mit Eclipse erstellen + Namespaces XML & JSON 2
A html-File nach txt-File konvertieren XML & JSON 15
K XML to file geht nicht :( XML & JSON 4
T select-statement aus mysql in ein xml-file umwandeln XML & JSON 3
J XML File updaten XML & JSON 2
A XML-file an der Konsole ausgeben XML & JSON 4
D In ein XML File meinStyleSheet.css eintragen? XML & JSON 9
J Client für WebService programmieren (aus WSDL-File) XML & JSON 15
R wie kann ich ein xml file in einen string einlesen? XML & JSON 2
A XML-File ausgeben XML & JSON 2
W aus XML-File gelesenes als Methodenaufruf verwenden XML & JSON 5
T Elemente aus XML-File löschen (JDom) XML & JSON 9
T [JDOM] XML File, neue Daten hinzufügen XML & JSON 5
D Aus Java XML-File an PHP-Skript senden: Encodingproblem? XML & JSON 3
B DOM oder HTML File drucken "wie ein Browser es zeigen w XML & JSON 3
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
M json page 2 auslesen XML & JSON 1
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
Kanda Sorata Eingabefelder von Excel Dateien auslesen XML & JSON 1
K XML vernünftig auslesen XML & JSON 9
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
H SOAPBody auslesen XML & JSON 0
B XML auslesen, benötige Hilfe XML & JSON 13
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
W XML einlesen und Attribute auslesen XML & JSON 1
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
M Json auslesen XML & JSON 7
K XML Auslesen, wie abspeichern? XML & JSON 32
D Attribute aus XML Auslesen XML & JSON 5
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
R Apache POI: Gezieltes Auslesen von Zellen XML & JSON 2
S XMl auslesen:@ output ? XML & JSON 1
Z Verschachtelte XML auslesen XML & JSON 3
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
I XML IDs auslesen, erst X dann Y XML & JSON 2
S XML - rekursives auslesen - Zeilenumbruch als NodeValue? XML & JSON 3
O XML richtig auslesen XML & JSON 7
Kenan89 XML Tag-ID auslesen mit getElementById XML & JSON 2
J Excel zeilenweise auslesen - POI XML & JSON 5
J Excel Zellen auslesen - automatischer Stopp bei leerer Zelle XML & JSON 2
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
S SVG auslesen und darstellen XML & JSON 5
G xpath: in Kindelement zwei Attribut-Werte auslesen XML & JSON 2
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
1 Html tabelle auslesen??? XML & JSON 6
JanUlrich Tabelle auslesen XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
J Anzahl der Elemente in einem XML-Dokument auslesen XML & JSON 7
K XMl auslesen XML & JSON 19
P Poi /XSSF : Excel-Tabelle auslesen XML & JSON 2
S XSD-Datei zulässige Werte auslesen XML & JSON 3
D rss auslesen XML & JSON 2
S Attribute von Elementen auslesen mit XPath XML & JSON 2
M Große Datei auslesen/in dieser suchen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4

Ähnliche Java Themen


Oben