我正在嘗試使用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'的定義,並且沒有可以找到接受類型'HtmlAgilityPack.HtmlNode'的第一個參數的擴展方法'SelectSingleNode'(您是否缺少using指令或程序集引用?)
我確認我所有的引用設置與我在控制台應用程序中完全相同,但我無法使其工作。根據HtmlAgilityPack Twitter帳戶,在版本1.4.5中添加了對Windows 8 Metro / Windows Phone 8的支持。我仔細檢查了我的NuGet包管理器並安裝了1.4.6。
在Windows 8應用程序的HtmlDocument中,我是否需要通過XPath
選擇節點?任何建議都將受到高度讚賞。
謝謝!
編輯:任何人都可以幫我用Linq查詢獲得相同的結果。我不確定我會怎麼做。
Html Agility Pack依賴.NET來實現XPATH。不幸的是,WinRT不支持XPATH,所以你在WinRT的Html Agility Pack中沒有任何與XPATH相關的東西。