59 votes

Puis-je utiliser une Regex dans une expression XPath ?

Quelque chose comme .//div[@id='foo\d+] pour capturer les balises div avec id='foo123' .

J'utilise .NET, si cela compte.

91voto

Dimitre Novatchev Points 147842

Comme d'autres réponses l'ont noté, XPath 1.0 ne prend pas en charge les expressions régulières .

Néanmoins, vous avez les possibilités suivantes :

28voto

Cristian Vat Points 956

XPath 2.0 dispose de certaines fonctions qui prennent en charge les expressions régulières : matches() , replace() , tokenize() .

XPath 1.0 ne prend pas en charge les expressions rationnelles.

Pour .NET, vous pouvez utiliser le moteur XPath de Saxon.Net pour bénéficier de la prise en charge de XPath 2.0.

Ainsi, si vous utilisez le moteur XPath 2.0 dans Saxon.NET, votre exemple se transformerait en : .//div[matches(@id,'foo\d+')] .

2voto

annakata Points 42676

Dans .NET, vous avez la possibilité d'accéder à vos classes personnalisées (et donc à l'expression rationnelle si vous pouvez la coder de manière appropriée pour vos besoins) via des objets d'extension.

Tutoriel aquí .

0voto

hoju Points 7182

J'ai également voulu faire cela et j'ai donc créé ma propre base. module xpath .

Prograide.com

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.

Powered by:

X