HTMLファイルから抽出したリンクをCheckBoxList
(cbl_items
)。
これまでのところ機能しますが、リンクの代わりに、アイテムの名前はHtmlAgilityPack.HtmlNodeとして表示されます。 DocumentElement
の代わりにNode
を使用してみましたが、存在しないか類似していると表示されていました。
HtmlAgilityPack.HtmlNodeの代わりに表示されるURLを取得するにはどうすればよいですか?
これは私がこれまでに試したことです:
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc = hw.Load(tb_url.Text);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
cbl_items.Items.Add(link);
}
HtmlNode
属性の値ではなく、CheckBoxList
にhref
objectを追加しています。表示されているのはHtmlNode
のToString()
値です。これは、CheckBoxList
がそのオブジェクトを表示するために実行できる最善の方法だからです。
代わりに、GetAttributeValue(string attribute, string defaultValue)
を使用してhref
属性の値を取得できます。
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc = hw.Load(tb_url.Text);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
// Get the value of the HREF attribute
string hrefValue = link.GetAttributeValue( "href", string.Empty );
cbl_items.Items.Add(hrefValue);
}