J'ai une chaîne qui contient des chiffres. Est-il possible, uniquement avec XPath, d'en tirer uniquement des nombres ?
Par exemple : myString="abcd12ef34gh567", résultat : 1234567
J'ai une chaîne qui contient des chiffres. Est-il possible, uniquement avec XPath, d'en tirer uniquement des nombres ?
Par exemple : myString="abcd12ef34gh567", résultat : 1234567
Utilisez :
translate(., translate(.,'0123456789',''), '')
C'est la méthode dite de "double traduction". proposé pour la première fois par @Michael Kay et peut être utilisé aussi bien dans XPath 1.0 que dans XPath 2.0.
Bien sûr, dans XPath 2.0, l'utilisation de RegeX sera généralement plus efficace. :
replace('abc123def590xyz', '[^\d]', '')
Si vous pouvez garantir que les caractères non numériques ne seront que des lettres minuscules (comme dans votre exemple), vous pouvez faire ce qui suit dans XPath 1 :
translate($myString, 'abcdefghijklmnopqrstuvwxyz', '')
Vous pouvez ajouter d'autres caractères à la chaîne alphabétique si nécessaire.
Dans XPath 2, vous pouviez utiliser une regex :
replace($myString, '[^0-9]', '')
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.