JDOM Error

Xenon

Mitglied
Hallo Forum,

ich habe folgende Situation wenn ich den folgenden Code kompilieredann kommt es zu einer Fehlermeldung die ich leider nicht interpretierenkann.
Wenn ich die Zeilen mit Element weglasse, dann kann ich das root Element auslesen. Wenn ich die Zeile mit Element behalte kommt es zu einer Fehlermeldung.
Java:
import org.xml.sax.InputSource;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;


public class DOM {
	public static void main(String[] args) throws JDOMException, IOException {
	
		SAXBuilder sxbuild = new SAXBuilder();
		InputSource is = new InputSource("C:\\test.xml");
		Document doc = sxbuild.build(is);
		System.out.println(doc.getRootElement());
		Element e = (Element) XPath.selectSingleNode(doc, "//svt/standardSVT/ecu");
		
	 

		
	}

}

Und hier ist die Fehlermeldung
Java:
[Element: <ttt http://AAA/BBB/CCC.xcdsd]/>]
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.selectSingleNode(XPath.java:376)
	at DOM.main(DOM.java:42)
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)
	... 5 more
 

Aldimann

Bekanntes Mitglied
Ihm fehlt ne Klasse... du musst ne library mit org.jaxen.JaxenException hinzufügen.

Verwundert mich bei dem Code bissl aber ok...
Anschließend wird n anderer Fehler auftreten, weil er wohl ne Exception werfen will ;)
 

MarderFahrer

Gesperrter Benutzer
Will man mit dem SAXParser, jdom in einer XML Datei suchen muss man folgenden Bibliotheken zusätzlich einbinden:
- saxpath.jar
- jaxen-core.jar
- jaxen-jdom.jar

Oder aber mit Standardmitteln arbeiten. Zum Beispiel so:
Java:
import java.io.File;
import java.io.IOException;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
 
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DOM {
	
	public DOM(){}

    public static void main(String[] args) {
    	 
        try {
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = docFactory.newDocumentBuilder();
            Document doc = builder.parse(new File("c:\\test.xml"));
 
            XPathFactory factory = XPathFactory.newInstance();
            XPath xpath = factory.newXPath();
 
            NodeList nodeList = (NodeList) xpath.evaluate("//svt/standardSVT/ecu", doc, XPathConstants.NODESET);
 
            int size = nodeList.getLength();
            
            for (int i = 0; i < size; i++) {
                Node node = nodeList.item(i);
                System.out.println(node.getTextContent());
            }
 
        } catch (XPathExpressionException e) {
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 
G

Gastredner

Gast
Will man mit dem SAXParser, jdom in einer XML Datei suchen muss man folgenden Bibliotheken zusätzlich einbinden:
- saxpath.jar
- jaxen-core.jar
- jaxen-jdom.jar
Komisch, ich habe mehrmals mit dem JDOM-SAXBuilder gearbeitet und benötigte diese Bibliotheken nie.
Könnte es vielleicht an der Verwendung einer InputSource liegen?
 

Xenon

Mitglied
So das ist die halbe Lösung jetzt kann ich den ersten Knoten auslesen, d.h. alles was im ersten <C></C> drin steht kann ich auslesen. Wie lese ich die restlichen Knoten aus?
Java:
<A>
    <B>
          <C>
                <D>bla</D>
                <D>bla</D>
                <D>bla</D>
         </C>
         <C>
                <D>blabla</D>
                <D>blabla</D>
                <D>blabla</D>
         </C>
         <C>
                <D>blablabla</D>
                <D>blablabla</D>
                <D>blablabla</D>
         </C>  
    </B>
</A>
Und hier ist der Java code....
Danke, für jeden Hinweis!

Java:
import java.io.*;
import org.jaxen.JaxenException;
import org.xml.sax.InputSource;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
import java.lang.NullPointerException;
import java.lang.reflect.Array;
import java.util.Iterator;
import java.util.List;


public class DOM {

	public static void main(String[] args) throws JDOMException, IOException {

	
		SAXBuilder sxbuild = new SAXBuilder();
		InputSource is = new InputSource("C:\\test.xml");
		Document doc = sxbuild.build(is);
	
			Element eins = (Element) XPath.selectSingleNode(doc, "//A/B/C/D");
			Element zwei = (Element) XPath.selectSingleNode(doc, "//A/B/C/D");
			Element drei = (Element) XPath.selectSingleNode(doc, "//A/B/C/D");
		
	System.out.println(eins.getValue()+"="+zwei.getValue()+"."+drei.getValue()+"."+vier.getValue()+"."+fünf.getValue());
	}
}
 
G

Gastredner

Gast
Vielleicht eine andere Methode als "selectSingleNode" verwenden?
Notfalls einfach durch den Baum durchiterieren.
 

MarderFahrer

Gesperrter Benutzer
Anstelle von "selectSingleNode" könntest du "selectNodes" nehmen. Benutzt die gleichen Parameter, aber gibt nicht nur ein Objekt zurück, sondern eine Liste mit allen gewünschten nodes über die sich iterieren lässt.

Am Rande sein erwähnt, dass deine Lösung nicht ganz so funktioniert wie du dir das gedacht hast.
Du sagst, diese Lösung würde schon mal alles aus dem ersten <C> Tag auslesen. Also deine Elemente "eins", "zwei" und "drei". Dies ist nicht ganz korrekt.
Im Prinzip holst du in deinem Code dreimal das selbe Objekt aus dem ersten <C> Tag.
Leider kann man das in deinem Beispiel nicht deutlich sehen, da alle drei Elemente den Namen "bla" tragen. Es wird deutlich wenn du die Elemente in "bla1", "bla2" und "bla3" umbenennst.

Dann ergbit dein Code die Ausgabe: bla1=bla1.bla1.

Was, bei näherer Betrachtung auch logisch ist, denn die verwendete Methode heißt ja "selectSINGLENode" Und da diese Methode dreimal mit den gleichen Parametern aufgerufen wurde, macht es sinn, dass dann auch dreimal dasselbe rauskommt.

Aber zurück zum Topic. Wenn du anstelle von selectSingleNode die Methode selectNodes benutzt, kannst du das ganze xml auslesen. In etwa so:
Java:
List<Element> liste = XPath.selectNodes(doc, "//A/B/C/D");
Iterator iti = liste.iterator();
while(iti.hasNext()){
    Element el = (Element)iti.next();
    System.out.println(el.getValue());
    System.out.println();
}
 

Xenon

Mitglied
Und hier ist die Lösung: man muss zwei Mal den Baum auslesen und mit while die gewünschte Stelle suchen

Java:
public static void main(String[] args) throws JDOMException, IOException {
 
    
        SAXBuilder sxbuild = new SAXBuilder();
        InputSource is = new InputSource("C:\\test.xml");
        Document doc = sxbuild.build(is);
        	
           Iterator itr = doc1.getDescendants(new ElementFilter());
	   while (itr.hasNext()) {
		   Element ecu= (Element) itr.next();
                              if(ecu.getName().equals("erstesElement")){
                                                                                       while(itr.hasNext()){
                                                                                                                    Element ecu1= (Element) itr.next();
                                                                                                                    System.out.prinln(ecu1.getValue()); 
                                                                                                                 }
                                                                                      }
                                           }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Wie jdom einbinden Java Basics - Anfänger-Themen 7
S Erste Schritte Jdom AusgabeSchleife Java Basics - Anfänger-Themen 5
S JDom API Doc in eclipse hinzufügen? Java Basics - Anfänger-Themen 2
T executable Jar JDOM Java Basics - Anfänger-Themen 9
T JDom komische Ausgabe Java Basics - Anfänger-Themen 4
T JDom Java Basics - Anfänger-Themen 8
G jar datei funktioniert nicht ohne jdom.jar im Ordner Java Basics - Anfänger-Themen 7
R JDom Exceptions Java Basics - Anfänger-Themen 4
G JDOM Java Basics - Anfänger-Themen 2
G JDOm + String Java Basics - Anfänger-Themen 2
J Mit JDOM HTML Files erzeugen? Java Basics - Anfänger-Themen 7
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
T JDOM - Document build aus byteArray? Java Basics - Anfänger-Themen 5
N SAX, StAX, JDOM oder DOM , ab wann welches für XML Java Basics - Anfänger-Themen 14
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
R Jdom + xml schreiben + ArrayList Java Basics - Anfänger-Themen 4
G JDOM: muss XML-Datei nach Änderung abgespeichert werden? Java Basics - Anfänger-Themen 2
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
N Compiler-Fehler Not a statement Error Java Basics - Anfänger-Themen 7
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
A Scanner-Error Java Basics - Anfänger-Themen 8
Elyt Error: incompatible types Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
C error: <identifier> expected Java Basics - Anfänger-Themen 13
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
N Methoden Unerklärliche Error Meldung Java Basics - Anfänger-Themen 3
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
9 Error bei .split() Java Basics - Anfänger-Themen 2
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
L SQLITE - Syntax error Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
A Objekt in Methode zurückgeben, JUnit zeigt Error Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
T Unverständlicher Launch-Error Java Basics - Anfänger-Themen 11
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
J Syntax error on token ";",, expected Java Basics - Anfänger-Themen 2
W double*double error Java Basics - Anfänger-Themen 4
C Compiler-Fehler No such Field error Java Basics - Anfänger-Themen 20
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Erste Schritte Syntax Error Java Basics - Anfänger-Themen 23
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
N Error bei eingabe eines Punktes Java Basics - Anfänger-Themen 1
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
TheMenox Error bei Scanner - woher? Java Basics - Anfänger-Themen 14
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
Chr1s Interpreter-Fehler Error Fehlercode Java Basics - Anfänger-Themen 7
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
1 Bei if-Anweisung: Syntax error on token Java Basics - Anfänger-Themen 5
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
C Exception Error Java Basics - Anfänger-Themen 15
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
B Not a statement error Java Basics - Anfänger-Themen 2
D error: cannot find symbol Java Basics - Anfänger-Themen 3
B Frage zu Beispielprogramm: "error: cannot find symbol" Java Basics - Anfänger-Themen 2
F java Ip ping + Dateiausgabe error ! Java Basics - Anfänger-Themen 3
O Exception Error Java Basics - Anfänger-Themen 3
BlueMountain Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 2
B Printf führt zu Error. Java Basics - Anfänger-Themen 8
P Fatal Error [...] librxtxSerial.so Java Basics - Anfänger-Themen 2
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
L Error: Cannot find symbol Java Basics - Anfänger-Themen 1
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
B Compiler-Fehler 86:11: error: ';' expected obwohl kein ";" hingehört! Java Basics - Anfänger-Themen 10
K Java-Editor: "Starten" bringt Error Java Basics - Anfänger-Themen 15
N Error "unreachable Code" Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben