Как выбрать элемент 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.

Другие вопросы по тегам