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:
Die XML-Datei:
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>