2016-06-09 8 views
0

Ich versuche, alles von den "p" -Knoten, die dem "h2" folgen, das "Zusammenfassung" enthält, zu extrahieren, bis ich zum nächsten "h2" komme.Xpath zum Extrahieren von folgenden Geschwistern bis zum nächsten angegebenen Knoten

Dies ist, was ich bisher:

.//h2[contains(text(),'Summary')]/following-sibling::*

Ich weiß nicht, wie um es zu stoppen. Ist das überhaupt möglich?

html

+0

fügen Sie p [1] anstelle der letzten *. Wenn Sie mehrere h2 Elemente mit Text Zusammenfassung haben dann fügen Sie [1] nach [enthält (..)] – lauda

Antwort

1

Wenn Sie p[preceding-sibling::h2[1][contains(., 'Summary')] wählen finden Sie alle p Kinder des Kontextknotens auszuwählen, die (der oder a) h2 enthält Summary als die unmittelbar vorangehenden h2 Geschwister.

Wenn Sie alle diese Elemente (z. B. ul) möchten, verwenden Sie *[not(self::h2)][preceding-sibling::h2[1][contains(., 'Summary')].

Oder Sie könnten .//h2[contains(., 'Summary')]/following-sibling::*[preceding-sibling::h2[1][contains(., 'Summary')]] versuchen.

+0

Das ist super vielen Dank .//p[precedding- Geschwister :: h2 [1] [enthält (., 'Zusammenfassung']]] funktioniert perfekt. Ich hatte nicht daran gedacht, rückwärts zu arbeiten. –