我想根据内部文本值从html
或字符串中获取网址。
例如:
<a href="http://www.itsmywebaddress.com">My Website</a>.
<a href="http://www.everythingisforgood.com">good</a>.
在这里,我需要根据“我的网站”(我们提供的输入)的内部文本来获取URL。
任何人都可以告诉我,Regex
代码是什么或使用HtmlAgilityPack
我们怎么做?
我使用了以下Regex
方法。但是,它获取“a”标记内的所有值。
Regex.Match(str, @"<a [^>]*>(.*?)</a>").Groups[1].Value;
提前致谢...
答案 0 :(得分:1)
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
var hrefs = doc.DocumentNode.SelectNodes("//a[@href]")
.Where(link => link.InnerHtml == str)
.Select(l=>l.Attributes["href"].Value).ToList();
答案 1 :(得分:0)
如果您正在使用htmlagility,您应该能够直接访问href而无需使用正则表达式。
这样的事情应该有用;
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
}