# xpath funktioniert nicht



## copper (29. Aug 2005)

Hallo, ich möchte mittels xpath den inhalt eines speziellen tags auslesen.
dazu die xml datei:


```
<wurzel>
<page priority="0" keyset="ALL" initialFocusedComponentID="Text1" history="true" type="page" version="34348" pageID="100">
<geometry x="0" y="0" width="720" height="576"/>
-
	<component class="BGImage" name="BGImage">
<geometry x="0" y="0" width="720" height="576"/>
-
	<param>
-
	<default name="default1">
<value key="quality">medium</value>
<value key="file">../resources/BGImage/Background3.png</value>//soll ausgelesen werden
</default>
</param>
<control componentID="BGImage">
            </control>
</component>
-
	<component class="Video" name="Video">
<geometry x="181" y="26" width="504" height="331"/>
-
	<param>
-
	<default>
<value key="frame">0, #ff000000</value>
</default>
-
	<focused>
<value key="frame">0, #ff000000</value>
</focused>
-
	<pressed>
<value key="frame">0, #ff000000</value>
</pressed>
-
	<disabled>
<value key="frame">0, #ff000000</value>
</disabled>
</param>
<control componentID="Video">
            </control>
</component>
...
...
...
...
```
Das 2. value element soll ausgelesen werden.
dazu der java code:

```
Element root = doc.getRootElement();
     XPath abfrage = XPath.newInstance("/wurzel/page/component/param/default/value[1]");
     Object ob = abfrage.selectSingleNode( doc );
     Element element = (org.jdom.Element) ob;
     System.out.println(element.getText());
```

Ich bekomme folgende exception:

at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at org.jdom.xpath.XPath.newInstance(XPath.java:126)
at XMLtest.main(XMLtest.java:28 )

Liegt ja eindeutig an xpath oder? Aber wie muss der Pfad noch verändert werden????

thx für die antworten


----------



## clemson (29. Aug 2005)

du verwendest jdom? dann musst du - soweit ich weiss - noch einen xpath-parser angegeben werden, im klassenpfad...

ich hab dazu jaxenverwendet...


----------



## copper (29. Aug 2005)

das verstehe ich nicht ganz: den parser im klassenpfad angeben

könntest du mal schreiben wie du das machen würdest?


----------



## clemson (29. Aug 2005)

hmm, also ich mein natürlich, dass du das JAR File im Klassenpfad angeben musst..

tschuldigung


----------



## clemson (30. Aug 2005)

also ich habs heute in der früh noch mal probiert. als ich das paket jaxen-core.jar in den CLASSPATH mitaufgenommen habe, hat meine xpath abfrage unter jdom funktioniert...


----------



## copper (30. Aug 2005)

jupp stimmt aber zusätzlich benötigt man noch 

saxpath.jar

und 

jaxen-jdom.jar

in seinem CLASSPATH

THX


----------

