Как выбрать элемент html с пространством имен с помощью Fizzler / HtmlAgilityPack?
Я использую Fizzler / HtmlAgilityPack для анализа и извлечения элементов из файла страницы ASP.NET. В файле asp.net мы также используем элементы управления Telerik, например
<telerik:RadGrid ... >
Чтобы извлечь этот элемент, я использовал следующие методы, но безуспешно. Может кто-нибудь помочь в этом, пожалуйста?
способ №1:
HtmlDocument document = .....;
document.SelectNodes("telerik:RadGrid");
и выдает исключение ниже:
Затем я попробовал метод №2:
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);
И снова нет исключения. Но сетка имеет значение null, хотя страница asp.net содержит разметку telerik:RadGrid.
1 ответ
Возможно, ваш xpath неверен. Пожалуйста, попробуйте это //*[name()='telerik:RadGrid'] в качестве пространства имен, оно должно работать для элементов с пространством имен XML.