2 Stimmen

Xpath 1.0 erhalte den Wert des vorherigen Elements, dessen Position nicht statisch ist

Meine HTML-Struktur sieht wie folgt aus

    Title 1

    Title 2

    Title 3

    Title 4

Ich möchte den Wert des vorherigen ersten h2 gemäß der divs erhalten, die die Klasse active haben

Meine XPath-Nachkommenachsen zum Auswählen von Knoten sehen wie folgt aus

//div[contains(@class, 'active')]

Ich habe Vorfahren und Vorhergehende Achsen von XPath ausprobiert, aber nicht das richtige Ergebnis erhalten

Ist dies mit XPath 1.0 möglich?

Hinweis: Ich kann nur die XPath-Version 1.0 verwenden

Vielen Dank im Voraus

3voto

Petr Janeček Punkte 36474

Dieser XPath-Ausdruck:

//div[@class='active']/preceding-sibling::h2[1]

kann als

"Wählen Sie das erste

-Element vor jedem aktiven

-Element aus."


sollte für Sie funktionieren.

0voto

Vlad.Bachurin Punkte 1280

Ich stimme auch für die von @Slanec vorgeschlagene Lösung ab - sie ist gut und einfach.

Aber wenn Sie sicherstellen möchten, dass Sie nach einem Element innerhalb eines bestimmten Bereichs von Elementen suchen, können Sie ein erweitertes XPath verwenden:

//div[(preceding-sibling::h2 and following-sibling::h2) 
       or preceding-sibling::h2[not(following-sibling::h2)]]
     [@class='active']
     /preceding-sibling::h2[1]

Es ist genau das Gleiche, außer dass hier 'div' im Bereich zwischen 2 'h2'-Elementen gesucht wird (oder nach dem 'h2', falls keine weiteren 'h2'-Elemente auf der Seite vorhanden sind).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X