Ich habe das folgende Beispieldokument:
%Vor% Ich suche nach einem xpath-Ausdruck, der alle direkten Geschwister eines bestimmten Knotens mit übereinstimmenden Klassenattributen auswählt, keine Geschwister. Im obigen Beispiel sollten die ersten zwei <p class="b">
A-B ausgewählt werden; ebenso die zwei <p class="a">
C-D, ebenso die fünfte Single <p class="b">
E, da sie keine direkten Geschwister hat; ebenso die einzelne <p class="b">
F innerhalb von <x>
. Beachten Sie, dass B und C in diesem Kontext keine direkten Geschwister sind, da sie ein anderes Klassenattribut haben!
Was ich habe ist das:
%Vor%Der letzte Ausdruck wählt auch das fünfte Geschwister aus, obwohl dazwischen nicht passende Geschwister sind.
Wie wähle ich nur direkte Geschwister mit dem gleichen class
-Wert?
Bearbeiten Zur Verdeutlichung: Beachten Sie, dass es sich bei den letzten beiden um einzelne Auswahlen und nicht um Geschwister handelt!
Bearbeiten Ich habe hier ein Beispiel hier gespeichert. Der Xpath-Ausdruck basierend auf /root/p[1]
soll A, B, C, D
auswählen.
Um das nächste nächste Geschwister zu erhalten, können Sie die Position - 1 Bedeutung direkt neben hinzufügen.
%Vor%Um sicherzustellen, dass das nächste Geschwister einen bestimmten Knotentyp hat, können Sie den folgenden Filter hinzufügen, wobei p der Knotentyp ist, mit dem wir übereinstimmen möchten.
%Vor%Wenn Sie nur solche mit demselben Attribut möchten, müssen Sie auch das Attribut für das erste p-Element angeben.
Wenn Sie also nur Elemente der Klasse b p wollen, die sich unmittelbar hinter einem Element der Klasse b p befinden, können Sie Folgendes tun. Dies würde Ihnen nur das zweite p-Element geben.
%Vor%Es klingt, als ob Sie tatsächlich ein Element der Klasse b wollen, das an ein anderes Element der Klasse b angrenzt. In diesem Fall können Sie das folgende und das vorherige Geschwister überprüfen. Das Folgende würde Ihnen die ersten 2 p Elemente geben.
%Vor%