我一直試圖設置FizzlerEx,發現在http://fizzlerex.codeplex.com/。添加引用到我的項目後,我試圖運行網站上給出的示例代碼 - 我的代碼的全部內容在下面列出。FizzlerEx/HtmlAgilityPack QuerySelectorAll不工作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HtmlAgilityPack;
using Fizzler.Systems.HtmlAgilityPack;
namespace Fizzler_Test
{
class Program
{
static void Main(string[] args)
{
var web = new HtmlWeb();
var document = web.Load("http://example.com/page.html");
var page = document.DocumentNode;
foreach (var item in page.QuerySelectorAll("div.item"))
{
var title = item.QuerySelector("h3:not(.share)").InnerText;
var date = DateTime.Parse(item.QuerySelector("span:eq(2)").InnerText);
var description = item.QuerySelector("span:has(b)").InnerHtml;
}
}
}
然而,這種收益率構建錯誤,聲稱:
Error 1 'HtmlAgilityPack.HtmlNode' does not contain a definition for 'QuerySelectorAll' and no extension method 'QuerySelectorAll' accepting a first argument of type 'HtmlAgilityPack.HtmlNode' could be found (are you missing a using directive or an assembly reference?)
這似乎是QuerySelectorAll實際上不是HtmlNode的一部分,但考慮到這是從逐字官方示例代碼網站,我希望創作者瞭解他們的圖書館是如何工作的。我對於實際問題可能會產生困惑。
一個相關的問題似乎已經在這裏找到,但沒有合適的答案被發現了:Fizzler and QuerySelectorAll
我正在使用此答案來擺脫我得到的錯誤。只引用上面指定的2個DLL刪除了「找不到」的錯誤。但是在運行時會發生不同的錯誤。由於沒有實現的方法,QuerySelectorAll拋出一個異常。 我發現我需要引用「Fizzler.dll」和「HtmlAgilityPack.dll」。它不適用於「Fizzler.Systems.HtmlAgilityPack.dll」和「HtmlAgilityPack.dll」。 –
也許你可以使用其他版本? –
我正在使用最新的FizzlerEx版本2012年6月19日穩定版本。我不明白爲什麼有人會在2013年使用不同的版本。 –