# XPath frage



## freaki_333 (1. Sep 2009)

Hi,

ich hab da mal ne Frage und zwar hab ich folgenden XML-Beispiel Auschnitt.
Da will ich gerne die Nodes zwischen der ersten und letzten Node (Also wo das Datum drinne ist)haben, die Anzahl der Nodes dazwischen ändert sich immer und daher suche ich ein generischen-Ansatz für mein Problem.
Zu beachten ist evtl. dass das hier nur ein Auschnitt aus eines ganzen Monat ist und ich die Nodes zwischen den Tagen haben möchte um diese dann verarbeiten zu können.

Mein Ansatz ist folgende:
Ich bekomme keine Fehler Meldung aber ich bekomme auch keine Rückgabe.

```
TR/TD/*[starts-with(text(),'Di')]/parent::*/parent::*/following-sibling::*[position()= TR/TD/*[starts-with(text(),'Mi')]/parent::*/parent::*[position()]]
```



```
<TR class="StdTableRowDark">
	<TD colspan="5">
		<B>Di 04.08.2009</B>
		- Arbeitszeitbeginn: 08:15 Uhr - Dauer: 9:00
	</TD>
</TR>
<TR class="TableRow1">
	<TD class="StdTableCell">XXXXXXXXXXXXXXXX</TD>
	<TD class="StdTableCell">XXXXXXXXXXXXXXXX</TD>
	<TD align="Right" class="StdTableCell" style="width:25">08:15</TD>
	<TD align="Right" class="StdTableCell" style="width:25">3:45</TD>
	<TD class="StdTableCell">Einarbeitung</TD>
</TR>
<TR class="TableRow2">
	<TD class="StdTableCell">XXXXXXXXXX</TD>
	<TD class="StdTableCell">Pause</TD>
	<TD align="Right" class="StdTableCell" style="width:25">12:00</TD>
	<TD align="Right" class="StdTableCell" style="width:25">0:30</TD>
	<TD class="StdTableCell" />
</TR>
<TR class="TableRow1">
	<TD class="StdTableCell">XXXXXXXXXXXXXXXXXXXXXXXXX</TD>
	<TD class="StdTableCell">XXXXXXXXXXXXXXXXXXXXXXXXX</TD>
	<TD align="Right" class="StdTableCell" style="width:25">12:30</TD>
	<TD align="Right" class="StdTableCell" style="width:25">1:30</TD>
	<TD class="StdTableCell">Â*Einarbeitung</TD>
</TR>
<TR class="TableRow2">
	<TD class="StdTableCell">XXXXXXXXXXXXXXXXX</TD>
	<TD class="StdTableCell">Einarbeitung</TD>
	<TD align="Right" class="StdTableCell" style="width:25">14:00</TD>
	<TD align="Right" class="StdTableCell" style="width:25">3:15</TD>
	<TD class="StdTableCell">XXXXXXXXXXXXXXXXXX</TD>
</TR>
<TR class="StdTableRowDark">
	<TD colspan="5">
		<B>Mi 05.08.2009</B>
		- Arbeitszeitbeginn: 08:15 Uhr - Dauer: 9:05
	</TD>
</TR>
```

Danke schon mal im vorraus für eure Bemühungen

Gruß freaki_333


----------



## musiKk (1. Sep 2009)

Sowas ist imho immer schwer zu beantworten, wenn man die Rahmenbedingungen nicht kennt. Hier reicht ja z. B. schon ein [c]TR[./TD[1]/@class][/c], weil je das erste und letzte Element kein <TD>-Kind mit class-Attribut hat. Mein erster Gedanke war allerdings, subsequence zu verwenden. Da habe ich aber nur Fehler bekommen. Ich weiß jetzt nicht genau, ob das mein Fehler war, oder ob die Standardimplementierung bei Java das einfach nicht unterstützt. Könnte aber für Dich dennoch ein Anhaltspunkt sein.


----------



## freaki_333 (2. Sep 2009)

kennt evtl. einer eine Funktion sowas wie "von-bis" das würde mir ja schon helfen.

Gruß freaki


----------



## musiKk (2. Sep 2009)

Äh... wie bereits erwähnt: subsequence...


----------



## freaki_333 (2. Sep 2009)

Hi danke,

dann hab ich wohl das mit subsequenz noch nicht ganz verstanden. Ich guck mir das nochmal an. 

Gruß freaki


----------

