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:
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
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:
Code:
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
Zuletzt bearbeitet von einem Moderator: