re:test()XPath到HtmlAgilityPack(在内部获取所有具有匹配的正则表达式的p标签)
|
我想要所有的
<p>=.+=</p>
标签。正则表达式可以独立工作,没有<p>
标签。
这是我的XPath:\"//p[re:test(.,\'^=.+=$\', \'i\')]\"
但是插入时出现异常,
HtmlNodeCollection pNodes = htmlDoc.DocumentNode.SelectNodes(\"//p[re:test(.,\'^=.+=$\', \'i\')]\");
例外是:
命名空间管理器或XsltContext
需要。该查询有一个前缀,
变量或用户定义的函数。
编辑:HTML由FCKEditor生成,并且没有定义名称空间。我需要为此设置一些功能吗?
HTML:
<p><style type=\"text/css\">
h2 a { color: black; }</style></p>
<p>----</p>
<h2>test <a href=\"http://searisen.com\">link</a></h2>
<p>== Heading 2 ==</p>
<p>----</p>
<p>=== Heading [http://searisen.com SeaRisen.com] ===</p>
没有找到相关结果
已邀请:
3 个回复
吞睫素
使用了名为
的XPATH函数(在前缀为
的命名空间中声明),而XSLT上下文未知。 我不知道您从何处获得该表达式,但这不是标准的,因此在Html Agility Pack上下文中没有任何意义:-) 有关深入的说明,请参见此处的精彩文章:向XPath添加自定义函数。请注意,您可以使用这些技术使其工作。 也就是说,这是一个“纯” HTML Agility Pack / XPATH实现:
它使用一个过滤器(在[和]之间)和标准的XPATH函数text()表示\“ inner text \”。
你换
如果有HtmlAgilityPack解决方案,我很想听听!
诫商