我希望能够创建一个节点集合,其中文本以单词开头,然后是数字。例如,给出以下内容:
<p>FINDTHIS 1</p>
<p>FINDTHIS SOMETEXT</p>
<p>FINDTHIS 2</p>
我希望能够创建一个由两个段落节点组成的集合:FINDTHIS 1和FINDTHIS 2.
一种可能的方法是创建像//p[starts-with(., 'FINDTHIS ')]
这样的xpath查询,然后使用正则表达式来确定下一个字符是否为数字。如果我想获得返回上述条件的匹配列表,我可以创建一个正则表达式对象并测试集合中每个成员的文本。
有没有办法使用HtmlAgilityPack直接在选择器中使用正则表达式?
答案 0 :(得分:2)
不,HTML Agility Pack目前不支持此功能。它支持XPath version 1 queries, which does not support regular expressions。
那就是说,你必须按照你的建议做,并选择使用XPath表达式直到你想要使用正则表达式,然后使用Where
extension method过滤掉相应的节点在RegEx
个实例上。
答案 1 :(得分:1)
它不是开箱即用的,但您可以轻松添加此功能。这里描述了:HtmlAgilityPack: xpath and regex