http://fizzlerex.codeplex.com/にある FizzlerEx をセットアップしようとしています。プロジェクトへの参照を追加した後、Web サイトにあるサンプル コードを実行しようとしました。コード全体を以下に示します。
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 の一部ではないように見えますが、これが Web サイトからそのまま引用された公式のサンプル コードであることを考えると、作成者はライブラリがどのように機能するかを理解していると思います。実際の問題が何であるかについて、私は途方に暮れています。
関連する問題がここで見つかったようですが、適切な答えは見つかりませんでした: Fizzler および QuerySelectorAll