我正在努力让HtmlAgilityPack与Windows 8 Metro Apps(Windows应用商店应用)配合使用。我已成功地在Windows控制台应用程序(C#)中写出了我需要的所有代码,它非常适合解析我需要的HTML并返回我需要的所需字符串。
// Create a new HtmlDocument and load the incoming string
HtmlDocument menu = new HtmlDocument();
menu.OptionUseIdAttribute = true;
menu.LoadHtml(response);
HtmlNode nameToRemove = menu.DocumentNode.SelectSingleNode("//*[@id=\"maincontent_0_contentplaceholder_0_lblHall\"]");
我的问题在于DocumentNode.SelectSingleNode
电话。我收到以下错误:
错误2'HtmlAgilityPack.HtmlNode'不包含的定义 'SelectSingleNode'并没有扩展方法'SelectSingleNode' 接受'HtmlAgilityPack.HtmlNode'类型的第一个参数可能是 发现(您是否缺少using指令或程序集引用?)
我确认我的所有参考设置与我在控制台应用程序中完全相同但我无法使其工作。根据HtmlAgilityPack Twitter帐户,版本1.4.5中添加了对Windows 8 Metro / Windows Phone 8的支持。我仔细检查了我的NuGet包管理器,我安装了1.4.6。
在Windows 8应用程序的HtmlDocument中,我需要通过XPath
选择节点吗?任何建议都将受到高度赞赏。
谢谢!
编辑:任何人都可以帮我用Linq查询获得相同的结果。我不确定我会怎么做。
答案 0 :(得分:10)
Html Agility Pack依赖.NET来实现XPATH。不幸的是,WinRT不支持XPATH,因此在WinRT的Html Agility Pack中没有与XPATH相关的任何内容。