我正在使用 HTML Agility 包来解析 Visual Studio 中的 ASPX 文件。
我正在搜索具有指定 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)?SelectNodes 方法返回的 HtmlNodeCollection 肯定可以包含 0 个节点吗?
或者是由于格式错误的 Xpath 表达式导致的错误?[我正在测试的选择器 ID 肯定存在于文件中,为 <div id="thisId">。]
是否可以直接从 Visual Studio 加载一个 ASPX 文件(我正在构建一个加载项)或者这是否包含 XML 错误,我是否必须加载输出 HTML 流(即在开始时没有页面声明文件等)?