2016-06-13 10 views
0

Wenn ich die folgende xPath verwenden:xPath wählen Sie findet mehrere Elemente anstelle eines (Geschwister vs. folgenden Geschwister)

//*[contains(@class, 'some-label') and contains(., 'MT:Week')] 

Es ist mir genau so, wie ein Element (a <span>) erwartet wird. So weit, ist es gut.

Was ich will, ist die <select> direkt daneben zu bekommen, aber durch dies zu tun:

//*[contains(@class, 'some-label') and contains(., 'MT:Week')]/following::select 

Er wählt bereits zwei<select> Elemente. Wie wähle ich nur eine ohne das Namensattribut (!)?

Die HTML:

<div> 
    <label> 
    <span class="some-label">MT:Month</span> 
    <select name="month" id="someID"> 
     <option selected="selected" value="12">March 2015</option> 
    </select> 
    </label> 
</div> 

<div> 
    <label> 
    <span class="some-label">MT:Week</span> 
<!-- want to select just the below one --> 
    <select class="width-50px" name="monthWeek" id="someOtherID"> 
     <option selected="selected" value="">All</option> 
     <option value="CalendarWeek{year=2015, week=9}">9</option> 
     <option value="CalendarWeek{year=2015, week=10}">10</option> 

    </select> 
    </label> 
</div> 


<div> 
    <label> 
    <span class="some-label">MT:Type</span> 
    <select name="type" id="anotherID"> 
     <option selected="selected" value="">All</option> 
     <option value="someValue">Value 1</option> 
     <option value="someValue2">Value 2</option> 

    </select> 
    </label> 
</div> 

Antwort

1

Sie können [1], um das erste zu erhalten:

//*[contains(@class, 'some-label') and contains(., 'MT:Week')]/following::select[1] 

Aber Sie wollen wahrscheinlich nur das eine im gleichen Etikett, so verwendet folgenden Geschwister:

//*[contains(@class, 'some-label') and contains(., 'MT:Week')]/following-sibling::select 
+0

Es ist überraschend, dass wir die gleichen zwei Ausdruck mit einem Unterschied von geschrieben haben 5 Sekunden :) – splash58

+0

@BeniBela. Danke, es wokrs. Jetzt gelernt den Unterschied zwischen Geschwister vs. Folgebild Geschwister. Gute Quellen mit Beispielen finden Sie hier - http://www.zvon.org/xxl/XPathTutorial/Output/example15.html und http://www.zvon.org/xxl/XPathTutorial/Output/example17.html – Andrejs

+0

@ splash58 Es scheint fast immer zu passieren – BeniBela

Verwandte Themen