HtmlAgilityPack ha la capacità di usare espressioni regolari nel suo selettore XPATH?

c# html-agility-pack regex xpath

Domanda

Mi piacerebbe essere in grado di creare una collezione di nodi in cui il testo inizia con una parola e poi un numero. Ad esempio, dato quanto segue:

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

Mi piacerebbe essere in grado di creare una collezione composta da due nodi di paragrafo: FINDTHIS 1 e FINDTHIS 2.

Un possibile approccio sarebbe quello di creare una query xpath come //p[starts-with(., 'FINDTHIS ')] e quindi usare un'espressione regolare per determinare se il prossimo carattere è o meno un numero. Se volevo ottenere un elenco di corrispondenze che restituivano i criteri di cui sopra, potevo creare un oggetto di espressione regolare e testare il testo per ogni membro della collezione.

C'è un modo per utilizzare un'espressione regolare direttamente all'interno del selettore usando HtmlAgilityPack?

Risposta accettata

No, HTML Agility Pack attualmente non supporta questo. Supporta query XPath versione 1, che non supporta le espressioni regolari .

Detto questo, dovrai fare come consigliato e selezionare utilizzando l'espressione XPath fino al punto in cui si desidera utilizzare un'espressione regolare, quindi utilizzare il metodo di estensione Where per filtrare i nodi appropriati in base a un'istanza RegEx .


Risposta popolare

Non è disponibile out-of-the-box, ma è possibile aggiungere facilmente questa funzionalità. È descritto qui: HtmlAgilityPack: xpath e regex



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché