首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Fizzler / HtmlAgilityPack选择带命名空间的html元素?

如何用Fizzler / HtmlAgilityPack选择带命名空间的html元素?
EN

Stack Overflow用户
提问于 2019-10-14 17:38:11
回答 1查看 65关注 0票数 0

我使用Fizzler / HtmlAgilityPack来解析和提取ASP.NET页面文件中的元素。在asp.net文件中,我们还使用了Telerik控件,例如

代码语言:javascript
复制
<telerik:RadGrid ... >

为了提取这个元素,我使用了下面的方法,但没有成功。有人能帮个忙吗?

method#1:

代码语言:javascript
复制
HtmlDocument document = .....;

document.SelectNodes("telerik:RadGrid");

它抛出了下面的异常:

然后我尝试了method#2:

代码语言:javascript
复制
XPathNavigator navigator = document.CreateNavigator();
var manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("telerik", "http://www.telerik.com");
var expr = XPathExpression.Compile("RadGrid");
expr.SetContext(manager);
var grids = document.DocumentNode.SelectNodes(expr);

再一次没有例外。但是即使asp.net页面包含了telerik:RadGrid的标记,网格也是空的。

EN

回答 1

Stack Overflow用户

发布于 2019-10-14 21:56:43

可能是您的xpath不正确。请尝试此//*name()='telerik:RadGrid‘作为命名空间,它应该适用于具有XML命名空间的元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58374017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档