2012-09-12 9 views
4

je les suivantes, et d'essayer de voir s'il y a une meilleure approche. Je sais qu'il peut être fait en utilisant starts-with/contains. Je teste avec firefox 10, qui, je crois, implémente xpath 2. +.XPath - en utilisant contient un caractère générique

noeud de test est

<a id="foo"> 
. 
. 
. 
<a id="foo1"> 
. 
<a id="foo2"> 

Est-il possible d'utiliser des caractères génériques pour être en mesure d'obtenir les noeuds foo1/foo2 ..

Quelque chose comme

//a[@id =* 'foo'] 

or 

//a[contains(@id*,'foo')] 

qui dirait, donnez-moi la « une » où l'ID commence par « foo » mais a des caractères supplémentaires ... Ce serait alors sauter le 1er nœud avec le « foo »

Je pensais avoir vu un article à ce sujet, mais je ne le trouve pas! Si je me souviens bien, l'article indiquait que xpath avait un ensemble d'opérateurs qui pourrait être utilisé pour désigner le début/la fin d'un modèle donné dans une chaîne.

grâce

+1

'* = '(non' '= *) est utilisé dans JQuery, non XPath. – choroba

Répondre

3

Pas un joker, mais probablement ce que vous devez tout de même:

//a[(@id!='foo') and starts-with(@id,'foo')] 

. W3C XPath spec Affichez

5

utilisation:

//a[@id[starts-with(., 'foo') and string-length() > 3]] 
+0

Une parenthèse est manquante après 'starts-with'. L'expression entière devrait lire: '// a [@id [starts-with (., 'Foo') et string-length()> 3]]'. –

+0

@Vincent Correction. –

Questions connexes