我正在尝试将从 HTML 文件中提取的链接添加到 CheckBoxList
(cbl_items
)。
它目前有效,但不是链接,而是项目的名称显示为 HtmlAgilityPack.HtmlNode。
我尝试使用 DocumentElement
而不是 Node
但它说它不存在或类似。
如何获取要显示的 URL 而不是 HtmlAgilityPack.HtmlNode?p>
这是我到目前为止尝试过的:
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
属性的值。您看到的是 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);
}
关于c# - HTML Agility Pack 获取页面上所有 anchor 的 href 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25688847/