Ich habe ein HTML/XML-Dokument ähnlich dem folgenden. Es kann ein oder mehrere "tr" der gleichen Farbe geben, bevor in einem willkürlich wiederholenden Muster zu der anderen Farbe gewechselt wird. Dies ist ein Beispiel:XPath Auswählen der Knoten bis zur Bedingung
<tr class='red'></tr>
<tr class='blue'></tr>
<tr class='red'></tr>
<tr class='red'></tr>
<tr class='red'></tr>
<tr class='blue'></tr>
<tr class='blue'></tr>
<tr class='red'></tr>
<tr class='red'></tr>
<tr class='blue'></tr>
Was ich suche ist ein XPath (1.0) Ausdruck, der von der ersten ‚tr‘ beginnend in jeder Farbe ‚Block‘ (beachten Sie, dass es kein Markup diese Angabe Blöcke, nur Änderungen in der Farbe), wählt die folgenden nachfolgenden 'tr' nur innerhalb dieses Blocks aus.
Ich habe den folgenden Ausdruck versucht
./following-sibling::tr[@class=preceding-sibling::tr[1]/@class]
aber wählt auch die zweite + ‚tr die von nachfolgenden Blöcken. Ich habe das Gefühl, dass ich nah an dem bin, was ich brauche, aber ich komme damit nicht zurecht.
Vielen Dank im Voraus.
Edit: Die gewünschte Ausgabe ist ein Knotensatz, der die nachfolgenden 'tr's innerhalb des Blocks enthält (und nur diesen Block).
Ich bin ein bisschen verwirrt ... Können Sie die gewünschte Ausgabe auch posten? –
Zum Beispiel, wenn mein Startpunkt der 3. "tr" (rot) wäre, würde ich nur die 4. und 5. tr auswählen. – user1300244