HTML敏捷性パックはすべてのアンカーのhref属性をページに取得します

c# html-agility-pack

質問

私は、HTMLファイルから抽出したリンクをCheckBoxListcbl_items )に追加しようとしていCheckBoxList

これまでのところ動作しますが、リンクの代わりに、項目の名前はHtmlAgilityPack.HtmlNodeとして表示されます。私はNode代わりにDocumentElementを使ってみましたが、存在しないか類似していないと言いました。

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属性を。あなたが見ているのは、 HtmlNodeToString()値です。これは、 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);
}



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ