Как выбрать элемент HTML с пространством имен с помощью Fizzler / HtmlAgilityPack? - PullRequest
0 голосов
/ 14 октября 2019

Я использую Fizzler / HtmlAgilityPack для анализа и извлечения элементов из файла подкачки ASP.NET. В файле asp.net мы также используем элементы управления Telerik, например

<telerik:RadGrid ... >

. Чтобы извлечь этот элемент, я использовал приведенные ниже методы, но безуспешно. Может ли кто-нибудь помочь в этом, пожалуйста?

метод № 1:

HtmlDocument document = .....;

document.SelectNodes("telerik:RadGrid");

, и ниже выдается исключение:

Exception

Затем я попробовал метод # 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);

Нет исключения снова. Но grid является нулевым, хотя страница asp.net содержит разметку telerik: RadGrid.

1 Ответ

1 голос
/ 14 октября 2019

Возможно, ваш xpath неверен. Попробуйте это // * [name () = 'telerik: RadGrid'] как пространство имен, оно должно работать для элементов с пространством имен XML.

...