# XML Suche funktioniert nicht



## florian.rhomberg (18. Mrz 2009)

Hallo liebes Forum!
Ich versuche derzeit verzweifelt mit Xpath eine XML Datei zu durchsuchen. Ich ahbe eine XML Datei die so ausschaut:
[HIGHLIGHT="xml"]<?xml version="1.0" encoding="UTF-8"?>
<db>
  <message id="19">
    <GelesenAm>01.04.2009</GelesenAm>
    <GueltigBis>16.11.2009</GueltigBis>
  </message>
  <message id="20">
    <GelesenAm>01.05.2009</GelesenAm>
    <GueltigBis>16.11.2009</GueltigBis>
  </message>
</db>[/HIGHLIGHT]
Nun möchte ich mit einer XPath Query alle Datensätze suchen die als message id="20" haben. Das schaut bei mir in Java so aus:
[HIGHLIGHT="Java"]public boolean checkID(int id){
		SAXBuilder builder = new SAXBuilder();
		try {
			Document doc=builder.build(this.path()+"profile.xml");
			Element root=doc.getRootElement();
			String xpathQuery = "//db/message[@id="+id+"]";
			List<Element> ergebnis = XPath.selectNodes(root, xpathQuery );

			if(ergebnis.isEmpty()){
				return false;
			}
			else {
				return true;
			}
		}
		catch (Exception e){
			return false;
		}
}[/HIGHLIGHT]
Wenn ich nun versuche das zu kompilieren bekomme ich folgende Exception:


```
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.jdom.xpath.XPath.newInstance(XPath.java:134)
	at org.jdom.xpath.XPath.selectNodes(XPath.java:345)
	at core.Profile.checkID(Profile.java:77)
	at core.Profile.main(Profile.java:154)
Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
```

Wo mache ich da den Fehler. Ich bin alles andere als ein XPath Query Experte und habe das alles mir aus dem Internet in Kombination mit Java ist auch eine Insel herausgesucht. Vielleicht kann mir da jemand helfen wo der Fehler liegt!

Liebe Grüße,
Florian


----------



## Wildcard (18. Mrz 2009)

Dir fehlen wohl ein paar Bibliotheken im Classpath


----------



## musiKk (18. Mrz 2009)

Du kannst das Document ja auch mit dem DocumentBuilder (Java Platform SE 6) erstellen. Da dürfte es keine Probleme geben, der ist in der Standardbibliothek.


----------



## Wildcard (18. Mrz 2009)

musiKk hat gesagt.:


> Du kannst das Document ja auch mit dem DocumentBuilder (Java Platform SE 6) erstellen. Da dürfte es keine Probleme geben, der ist in der Standardbibliothek.



Die fehlt aber: org/jaxen/JaxenException
Das ist eine XPath Bibliothek, es liegt nicht am Document


----------



## florian.rhomberg (18. Mrz 2009)

Hallo!
Vielen Dank für eure Hilfe, natürlich hat ein Bibliothek gefehlt. Leider habe ich das nicht aus der Exception lesen können. Vilen Dank für eure Hilfe, ihr seit echt klasse!

Falles jemand ein ähnliches Problem hat, will man mit dem SAXParser, jdom in einer XML Datei suchen muss man folgenden Bibliotheken einbinden:
- saxpath.jar
- jaxen-core.jar
- jaxen-jdom.jar

Liebe Grüße,
Florian


----------



## musiKk (18. Mrz 2009)

Wildcard hat gesagt.:


> Die fehlt aber: org/jaxen/JaxenException
> Das ist eine XPath Bibliothek, es liegt nicht am Document



Achso. Ich vermutete den SAXBuilder, weil der im Gegensatz zu XPath (bzw. einer entsprechenden Implementierung) nicht in der Standardbibliothek ist. Zumindest bei Java 6.


----------

