web-dev-qa-db-fra.com

XPath pour rechercher des éléments qui n'ont pas d'ID ou de classe

Comment puis-je obtenir tous les éléments tr sans attribut id?

<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>

Merci

74
priyank

Assez simple:

//tr[not(@id) and not(@class)]

Cela vous donnera tous les éléments tr sans attributs id et class. Si vous voulez que tous les éléments tr manquent l'un des deux, utilisez or au lieu de and:

//tr[not(@id) or not(@class)]

Lorsque des attributs et des éléments sont utilisés de cette manière, si l'attribut ou l'élément a une valeur, il est traité comme s'il était vrai. S'il manque, il est traité comme s'il était faux.

119
Welbog

Si vous recherchez un élément qui a classe a mais ne fait pas a la classe b, vous pouvez faire ce qui suit.

//*[contains(@class, 'a') and not(contains(@class, 'b'))]

Ou si vous voulez être sûr de ne pas correspondre partiellement.

//*[contains(concat(' ', normalize-space(@class), ' '), ' some-class ') and 
not(contains(concat(' ', normalize-space(@class), ' '), ' another-class '))]
15
miphe

Pouvez-vous essayer //tr[not(@id)]?

8
vtd-xml-author