HtmlAgilityPack peut-il utiliser des expressions régulières dans son sélecteur XPATH?

c# html-agility-pack regex xpath

Question

J'aimerais pouvoir créer un ensemble de nœuds dont le texte commence par un mot, puis un nombre. Par exemple, étant donné ce qui suit:

<p>FINDTHIS 1</p>
<p>FINDTHIS SOMETEXT</p>
<p>FINDTHIS 2</p>

J'aimerais pouvoir créer une collection composée de deux nœuds de paragraphe: FINDTHIS 1 et FINDTHIS 2.

Une approche possible serait de créer une requête xpath telle que //p[starts-with(., 'FINDTHIS ')] , puis d'utiliser une expression régulière pour déterminer si le caractère suivant est un nombre ou non. Si je souhaitais obtenir une liste de correspondances renvoyant les critères ci-dessus, je pouvais créer un objet d'expression régulière et tester le texte de chaque membre de la collection.

Existe-t-il un moyen d'utiliser une expression régulière directement dans le sélecteur à l'aide de HtmlAgilityPack?

Réponse acceptée

Non, le pack d'agilité HTML ne prend actuellement pas en charge cette fonctionnalité. Il prend en charge les requêtes XPath version 1, qui ne prennent pas en charge les expressions régulières .

Cela dit, vous devrez faire ce que vous avez recommandé et sélectionner à l'aide de l'expression XPath jusqu'au point où vous souhaitez utiliser une expression régulière, puis utiliser la méthode d'extension Where pour filtrer les nœuds appropriés en fonction d'une instance RegEx .


Réponse populaire

Ce n'est pas disponible immédiatement, mais vous pouvez facilement ajouter cette fonctionnalité. Il est décrit ici: HtmlAgilityPack: xpath et regex



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow