XPath partielle de l'attribut connu
Je sais partielle de la valeur d'un attribut dans un document, mais pas la totalité de la chose. Est-il un personnage que je peux utiliser pour représenter n'importe quelle valeur? Par exemple, la valeur d'une étiquette pour une entrée est "A. 1". Je sais qu'il dit "Choix 1", mais pas si elle va dire "A" ou "B" avant le "Choix 1". Ci-dessous est le HTML. Il y a d'autres attributs de l'entrée et de l'étiquette, mais ils ne sont pas les mêmes à chaque fois que la page est affichée, donc je ne peux pas les utiliser comme références:
<tr>
<td><input type="checkbox" /><label>A. Choice 1</label></td>
</tr><tr>
<td><input type="checkbox" /><label>B. Choice 2</label></td>
</tr><tr>
<td><input type="checkbox" /><label>C. Choice 3</label></td>
</tr><tr>
<td><input type="checkbox" /><label>D. Choice 4</label></td>
</tr>
C'est le XPath expression que j'utilise pour sélectionner l'entrée à côté de l'étiquette avec la valeur de "Choix 1", sauf que l'Un est en face de lui dans le code HTML:
//td[label="Choice 1"]/input
Je ne sais pas si l'Une dans le code HTML sera A, B, ou C, etc. Mais je sais que l'entrée correcte aurez toujours le Choix 1 texte en regard. Comment dois-je dire à sélectionner si l'étiquette contient Choix 1, par opposition à étant égal à choix 1?
OriginalL'auteur avaleske | 2009-05-14
Vous devez vous connecter pour publier un commentaire.
Votre expression XPath devrait ressembler à ceci:
Vous sélectionnez tous les
td
éléments qui ont une étiquette qui contientChoice 1
et ensuite vous sélectionnez leinput
éléments à l'intérieur de cestd
éléments.MODIFIER: Tomalak commentaire correctement suggère une amélioration de prévenir un match contre le Choix de la 11' (ou 'Choix 12345', ...).
Aussi utile pour moi, merci 🙂
Non, il devrait ressembler à
//td[contains(concat(' ', label, ' '), ' Choice 1 ')]/input
ou il matchChoice 11
.juste une remarque pour les autres tomber sur ceci: vous avez à utiliser @label puisque vous faites référence à un attribut
OriginalL'auteur
Trouvé Ronald est la solution tout en essayant de trouver un moyen de tester si un nœud possède un attribut "align" qui n'est pas vide OU un attribut "style" qui contient la valeur de texte 'text-align'. Ce sont les "nœuds" à la question:
Cette expression xpath travaillé, grâce à Ronald réponse qui m'a orienté dans la bonne direction:
OriginalL'auteur