Question

J'ai essayé plusieurs combinaisons sans succès. Le xpath complet vers ces données est .//*[@id='detail_row_seek_37878']/td Le problème est que la partie numérique '37878' change pour chaque nœud et je ne peux donc pas utiliser de foreach pour parcourir les nœuds. Existe-t-il un moyen d'utiliser un caractère générique et de réduire le xpath à .//*[@id='detail wildcard , afin de contourner la partie de valeur absolue? J'utilise le pack d'agilité HTML à ce sujet.

 HtmlNode ddate = node.SelectSingleNode(".//*[@id='detail_row_seek_37878']/td");

Réponse acceptée

Extrayez la partie qui ne change pas:

//*[starts-with(@id, 'detail_row_seek')]/td

Techniques et fonctions connexes

Pour faire correspondre les éléments dont l'attribut id contient la chaîne _row_ au 7ème caractère :

//*[starts-with(@id, 'detail_row_seek')]/td

Pour faire correspondre des éléments dont l'attribut id contient le texte detail_ à n'importe quelle position:

//*[starts-with(@id, 'detail_row_seek')]/td

Pour faire correspondre les éléments dont l'attribut id se termine par le texte detail_row_seek :

//*[starts-with(@id, 'detail_row_seek')]/td



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi