# Problem mit XPath



## skelle (12. Nov 2008)

Hallo,
ich bin gerade dabei eine XML mittelns XPath auszuwerten komme jedoch grad nicht weiter

die xml datei:

```
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Kategorie name="kopf"/>
    <Test name="Drehen"/>
        <Baustein name="Winkel"/>
        <Baustein name="Schmerz"/>
    <Test name="Neigen"/>
        <Baustein name="Winkel"/>
        <Baustein name="Schmerz"/>
<Kategorie name="Fuss"/>
    <Test name="Ausdauer"/>
        <Baustein name="Dauer"/>
        <Baustein name="Tempo"/>
    <Test name="Refelex"/>
        <Baustein name="Tempo"/>
        <Baustein name="Stärke"/>
</root>
```


```
String path = "/root/Kategorie[@name='kopf']//Test";
```

liefert mir keiner Ergebnis

wenn ich jedoch schreibe

```
[String path = "/root//Test";
```

klappt die ganze sache allergins bekomm ich dann zuviele test elemente zurück ...

nach einigem probieren ist mir aufgefallen das eig kein path mehr geht sobald ich 3 Elemente in dem Path drin habe daran dürfte es aber eig nicht liegen oder?


----------



## klauskarambulut (18. Nov 2008)

oh man, bist du dir sicher das dein xml passt?
Versuchs mal damit, der xpath stimmt ja ansonsten.

```
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Kategorie name="kopf">
    <Test name="Drehen">
        <Baustein name="Winkel"/>
        <Baustein name="Schmerz"/>
    </Test>
    <Test name="Neigen">
        <Baustein name="Winkel"/>
        <Baustein name="Schmerz"/>
        </Test>
  </Kategorie>
  <Kategorie name="Fuss">
    <Test name="Ausdauer">
        <Baustein name="Dauer"/>
        <Baustein name="Tempo"/>
    </Test>
    <Test name="Refelex">
        <Baustein name="Tempo"/>
        <Baustein name="Stärke"/>
    </Test>
  </Kategorie>
</root>
```

Komische Klammern machen noch lange kein vernünftiges xml.


----------



## ManInBlack (19. Nov 2008)

Das würde mich auch interessieren, hat hier keiner eine Idee wie man XPath richtig anwendet?


----------



## Murray (19. Nov 2008)

Dein XML war falsch - Du hast zwar Einrückungen gesetzt, aus denen man erkennt, dass Baustein ein Element innerhalb von Test und Test ein Element innerhalb von Kategorie sein soll - die Tags sind aber so gesetzt, dass alle Elemente direkte Kind-Elemente von root sind.

Mit der Version von klauskarambulut sollte es passen.


----------



## ManInBlack (19. Nov 2008)

So langsam wird mir die Sache mit XPath klarer, ich kann
euch vollgenden Links empfehlen, die haben mir sehr weiter geholfen:

1) XPath-Tutorial

2) 
Erklärung mit Beispielen zu XPath

3) Java ist auch eine Insel

Viel spaß mit JDom und XPath


Leider ist mir folgendes immer noch unklar 

http://www.java-forum.org/de/topic78256_xml-elemente-entfernen-schen.html

gruß
ManInBlack


----------

