J'essaie d'ajouter des liens extraits d'un fichier HTML à un CheckBoxList
(cbl_items
).
Il fonctionne jusqu'à présent, mais au lieu du lien, le nom de l'élément est affiché sous la forme HtmlAgilityPack.HtmlNode. J'ai essayé d'utiliser DocumentElement
au lieu de Node
mais il a dit qu'il n'existe pas ou similaire.
Comment puis-je obtenir l'URL à afficher au lieu de HtmlAgilityPack.HtmlNode?
Voici ce que j'ai essayé jusqu'à présent:
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);
}
Vous ajoutez HtmlNode
objet à CheckBoxList
et non la valeur de l'attribut href
. Ce que vous voyez est la valeur ToString()
de HtmlNode
car c'est la meilleure chose que CheckBoxList
puisse faire pour afficher cet objet.
À la place, vous pouvez utiliser GetAttributeValue(string attribute, string defaultValue)
pour récupérer la valeur de l'attribut 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);
}