Xpath “se termine par” ne fonctionne pas
Je suis en train d'essayer de trouver un élément d'entrée avec dynamique de nom de l'id de toujours se terminant par "enregistrer". Jusqu'à présent, j'ai essayé ce
"//input[@id[ends-with(.,'register')]]"
et ce
"//input[ends-with(@id,'register')]"
aucun de ces résultats dans un élément. Ce que je fais mal? En même temps cela fonctionne:
"//input[@id[contains(.,'register')]]"
Voici la partie de la source:
<td class="input">
<input id="m.f0.menu.f2.volumeTabs.BLOCK_COMMON.tcw.form.register" name="m.f0.menu.f2.volumeTabs.BLOCK_COMMON.tcw.form.register" class="aranea-checkbox" type="checkbox"> </td>
- la version de xpath utilisez-vous?
- En plus de la XPath version (1.0 n'a pas
ends-with()
), pouvez-vous également nous montrer un peu de XML qui montre le problème? - euh, pas sûr - comment puis-je vérifier la version? Je suis en train de tester via Google Chrome console. Qui est la version de google Chrome à l'aide?
- au moins, l'échantillon XML qui peut reproduire le problème. Aucune chance que la valeur de l'attribut id a des espaces à la fin, de sorte qu'il n'est pas, justement, se termine par "s'inscrire"?
- double possible de Pourquoi ne xmlstarlet dire il n'y a pas de " se termine-avec la fonction?
Vous devez vous connecter pour publier un commentaire.
La
ends-with
fonction est une partie de xpath 2.0, mais les navigateurs (vous indiquez que vous faites des tests avec google chrome), en général, seulement un soutien 1.0. Ainsi, vous aurez à mettre en œuvre vous-même avec une combinaison destring-length
,substring
et est égal à