Я использую пакет Agility для HTML для анализа файла ASPX в Visual Studio.
Я ищу элемент с указанным атрибутом ID.
Код, который я используюс помощью:
var html = new HtmlAgilityPack.HtmlDocument();
html.LoadHtml(docText);
if (html.DocumentNode != null)
{
try
{
var tagsWithId = html.DocumentNode.SelectNodes(string.Format("//[@id='{0}']", selector.Id));
Однако, когда я запускаю этот код, он выдает исключение "Выражение должно вычисляться для набора узлов".
Может кто-нибудь сказать мне, почему это " должен вычислять набор узлов?Почему он просто не может вернуть никаких узлов (следующая строка вызывает tagsWithId.Count)?Конечно, HtmlNodeCollection, возвращаемая методом SelectNodes, может содержать 0 узлов?
Или это ошибка из-за искаженного выражения Xpath?[Идентификатор селектора, с которым я проверяю это, определенно существует в файле как.]
Можно ли даже загрузить файл ASPX прямо из Visual Studio (я создаю надстройку) или он будет содержать ошибки XML, и вместо этого мне придется загружать выходной поток HTML ( т.е. без объявления страницы в начале файла, и т. Д. .)?