0

いろいろなサイトから情報を抽出したい。私は HtmlAgilityPack と Linq to XML を使用しています。これまでのところ、次のように記述して、Web サイトの単一ノードから値を抽出することができました。

var q = document.DocumentNode.DescendantNodes()
        .Where(n => n.Name == "img" && n.Id == "GraphicalBoard001")
        .FirstOrDefault();

しかし、「GraphicalBoard」で始まる img のコレクション全体に本当に興味があります。私は次のようなものを試しました:

var q2 = document.DocumentNode.DescendantNodes()
        .Where(n => n.Name == "img" && n.Id.Contains("GraphicalBoard"))
        .Select...

しかし、インテリセンスで選択オプションを失ったため、linqはContains-methodが好きではないようです。Id が「GraphicalBoard」で始まるすべての img タグを抽出するにはどうすればよいですか?

4

1 に答える 1

1

Id が「GraphicalBoard」で始まるすべての img タグを抽出するにはどうすればよいですか?

あなたはすでにそれを持っていました. への呼び出しで停止してWhere()ください. このWhere()呼び出しは、述語を満たす項目によってコレクションをフィルタリングします。

imgすべての子孫ではなく、子孫をフィルタリングするように記述する必要がありますが。

var query = doc.DocumentNode.Descendants("img")
               .Where(img => img.Id.StartsWith("GraphicalBoard"));
于 2012-08-11T05:24:43.830 に答える