2010-03-12 3 views
1

Comment trouver des éléments ayant au moins un attribut?XPath pour trouver des éléments avec des attributs

Exemple:

<tr>...</tr> 
<tr style="">...</tr> 
<tr width="">...</tr> 

Je veux que tous les éléments tr ... mais

J'ai essayé suivant XPath, mais il ne fonctionne pas.

//table//tr[contains(attributes::*,'')] 

Merci

+0

XPather peut vous aider: http://xpath.alephzarro.com/ – ANeves

Répondre

3

Cela devrait le faire:

//table/tr[@*] 

La raison pour laquelle le vôtre ne fonctionne pas est parce renverront toujours vrai lorsque le second paramètre est ''. Lorsqu'une expression renvoie un ensemble de nœuds entre crochets, elle est considérée comme vraie si elle est non vide, false si elle est vide. Donc [@*] retournera l'ensemble de tous les attributs et sera interprété comme vrai s'il y en a.

+0

Non, toutes les lignes sont renvoyées. Je crois que toutes les chaînes contiendront ''. C'est pourquoi il retourne tous les noeuds tr. – priyank

+0

@priyank: Je viens de lui donner un test dans l'interpréteur XSLT de Visual Studio et mon exemple fonctionne comme prévu. – Welbog

+0

@priyank: Ce n'est certainement pas la même chose. Utilisez XPather et inspectez cette page, en utilisant '// div' et' // div [@ *] '- ils fournissent un nombre différent d'éléments. – ANeves

Questions connexes