2016-07-31 1 views
2

si TR contient class="productnamecolor colors_productname" Je souhaite sélectionner tr qui contient les détails du prix. donc j'utilise:Xpath pour sélectionner le parent suivant du nœud actuel

.//a[@class="productnamecolor colors_productname"]/parent::node()/following-sibling::tr 

Mais n'a pas fonctionné. Quel est le problème avec cette expression?

HTML:

<tr> 
<td valign="top" width="100%"> 
    <a href="unclesamsretailoutlet.com/Trouser-Suspenders-8440015269920-p/…; class="productnamecolor colors_productname" title="Trouser Suspenders, 2323">Trouser Suspenders</a> 
    </td> 
</tr> 

Thanx à l'avance.

+0

S'il vous plaît [modifier] votre question et y ajouter votre XML plutôt que dans un commentaire. Merci. – kjhughes

Répondre

2

Le parent de votre élément <a> est un élément td, et l'élément td ne dispose pas d'un following-sibling - certainement pas un frère suivant qui est un tr. Si vous voulez que la ligne suivante dans la table, utilisez

.//a[@class="..."]/ancestor::tr[1]/following-sibling::tr[1] 

ou

.//tr[descendant::a/@class="..."]/following-sibling::tr[1] 
+0

Merci monsieur. Maintenant, ça marche. – Arunkumar

+0

@Arunkumar: S'il vous plaît [** accepter **] (http://meta.stackoverflow.com/q/5234/234215) cette réponse si c'est aidé. Merci. – kjhughes

+0

monsieur est-il un moyen de sélectionner le nième élément. comme tr [3], tr [6], tr [9]. Parce que le qui contient les détails des prix est tr [3], tr [6], tr [9] – Arunkumar

1

Si vous voulez sélectionner juste à côté tr après <a class="productnamecolor colors_productname"> utiliser simplement en suivant deux façons: -

  • en utilisant l'axe following:

    (.//a[@class="productnamecolor colors_productname"]/following::tr)[1] 
    
  • utilisant preceding axe:

    (.//tr[preceding::a[@class="productnamecolor colors_productname"])[1] 
    

Hope it helps ... :)