アングルシャープの使い方を理解しようとしています。
例 ( https://github.com/AngleSharp/AngleSharp )に基づいてこのコードを作成しました。
// Setup the configuration to support document loading
var config = Configuration.Default.WithDefaultLoader();
// Load the names of all The Big Bang Theory episodes from Wikipedia
var address = "http://store.scramblestuff.com/";
// Asynchronously get the document in a new context using the configuration
var document = await BrowsingContext.New(config).OpenAsync(address);
// This CSS selector gets the desired content
var menuSelector = "#storeleft a";
// Perform the query to get all cells with the content
var menuItems = document.QuerySelectorAll(menuSelector);
// We are only interested in the text - select it with LINQ
var titles = menuItems.Select(m => m.TextContent).ToList();
var output = string.Join("\n", titles);
Console.WriteLine(output);
これは期待どおりに機能しますが、プロパティにアクセスしたいのですが、Href
これを行うことができません:
var links = menuItems.Select(m => m.Href).ToList();
デバッガーを見ると、結果ビューで、HtmlAnchorElement
列挙可能なオブジェクトに Href プロパティがあることがわかりますが、明らかにそれに正しくアクセスしようとしていません。
ドキュメントの例では、アクセスされているプロパティを示していないため、表示する必要のない非常に単純なものだと思いますが、その方法はわかりません。
鋭角でhtmlプロパティにアクセスする方法を誰かに教えてもらえますか?
編集:
これは、正しいタイプにキャストすると機能します
foreach (IHtmlAnchorElement menuLink in menuItems)
{
Console.WriteLine(menuLink.Href.ToString());
}
titles 変数のような Linq ステートメントとしてどのように記述すればよいでしょうか?