# XML Datei parsen



## Keld (28. Nov 2003)

Ich habe mich nun versucht überall zu erkundigen, was es über XML und Parsing zu wissen gibt, aber ich finde nicht einen einzigen für mich verständlichen Einstiegspunkt. Der Sprung mancher Tutorials von "XML Grundlagen" bis zur tiefergehenden DOM/Sax Programmierung ist einfach zu stark um da mitgehen zu können. Zumindest was mein Verständnis angeht...

Damit ich es "endlich" auch mal verstehen kann, schilder ich mal mein Verständnisproblem:

Ich habe eine xml-Datei (egal wie sie aussieht)
Diese besteht aus Elementen,Atributen und natürlich die Daten.

Nehmen wir als Beispiel:
[anfang]
[mitte]Mein Text [/mitte]
[/anfang]

(er hat wohl die klammern verschluckt)

Ich möchte das gerne mit Sax parsen, dass ich dann über ein einfaches System.out.println(xmlDaten) einfach "Mein Text" ausgespuckt bekomme.

Evtl. hat jmd ein Link zu einem änlichen beispiel wie das funktioniert und das es verständlich rüberkommt. Ich muss ehrlich sagen ich hab mittlerweile genug über xml definitionen gelesen und document type definition dass ich mich heut nach im bett welzen werde 

Selbst die Sun XML Tutorials sind sowas von über bohrt... naja ich hoffe mir kann jmd helfen


----------



## Keld (30. Nov 2003)

Ok nachdem ich nun 2 mal drüber geschlafen habe, stehe ich nun vor folgendem problem:


```
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
//import org.xml.sax.helpers.*;


public class MySAX extends DefaultHandler{

	public MySAX ()
	{
	super();
	}
	
	public static void main (String args[])
	throws Exception
	{

	XMLReader xr = XMLReaderFactory.createXMLReader();
 

	}

}
```

Ich bekomm aber eine Exception an den Kopf geworfen die ich nicht verstehe:

org.xml.sax.SAXException: System property org.xml.sax.driver not specified
	at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(Unknown Source)
	at MySAX.main(MySAX.java:20)
Exception in thread "main" 

nach einiger nachforschung wird einem gesagt, dass wie es da auch steht das System.Property nicht gesetzt ist.

Wenns denn so wäre, warum findet er die Import klassen? Ich benutze Eclipse. Evtl kann mir dann jmd erklären wie ich Xerces für eclipse installier. Dieses Plugin System macht mich ganz wuschig  bin erst vor kurzem von Forte auf Eclipse umgestiegen


----------



## utnovetur (30. Nov 2003)

Du kannst die Property setzen über:

```
System.setProperty("org.xml.sax.driver", "org.apache.xerces.parsers.SAXParser");
```
oder den Parser beim Aufruf mit angeben:

```
rf.createXMLReader("org.apache.xerces.parsers.SAXParser");
```


----------



## Keld (1. Dez 2003)

So ich hab mich mal mit JDOM (http://www.jdom.org) auf einen Tip hin mit auseinandergesetzt und es ist fantastisch.

Muss mich noch in die API einarbeiten, aber alles was ich wollte funkt  Kann jedem nur ans Herz legen der XML näher kennenlernen will sich JDOM anzugucken. Ist sehr einfach zu verstehen


----------



## Plasma (22. Dez 2003)

JDOM ist wirklich ziemlich genial, wer mehr in dieser Richtung arbeitet dem empfehle ich die passende Mailingliste dazu. Ist nicht besonders viel los, aber es wird einem immer geholfen und ein paar von den Entwicklern lesen auch mit.

Die Exception von oben bedeutet übrigens, dass kein XML-Parser gefunden wurde. Sollte sich normalerweise dadurch beheben lassen, dass man das entsprechende Paket (Xerces, Crimson, etc) in den Classpath einbindet. Direktes Setzen über Systemproperties ist nicht zu empfehlen.


----------

