我想浏览所有html链接(<a hef="" ><image/></a>
),我想用href值替换它们。
为此,我使用HtmlAgilityPack获取所有链接,然后我尝试用href替换链接的任何外部html。
result = result.Replace(l.OuterHtml, l.Text + " " + l.Href);
这适用于普通链接,但它不适用于嵌入了图像的长链接。
它适用于<a href="http://www.domain.net/">www.domain.Net<br /></a>
但它不适用于
<a href="http://www.domain.net/property-details.aspx?state=50&search=yes&offset=0&page=2&offset=10&page=3&offset=20&page=4&offset=30&page=5&offset=40&page=6&pid=828"><image style="border: 1px solid #c99982; margin: 5px 0 0px 0;" src="http://domain.com/private/007jg5he/large_289572HESSEL_prop_photos_horse_areas_010-1" alt="Sebastopol" width="158" height="108" /></a>
那么我该如何解决这个问题呢?我想只显示以下链接的Text部分和href值。
答案 0 :(得分:0)
这里你不需要(也不应该使用)正则表达式。这就是首先使用解析器的重点。
HtmlDocument doc = ...;
var query = doc.DocumentNode.Descendants("a");
foreach (var a in query.ToArray())
{
a.ParentNode.ReplaceChild(HtmlNode.CreateNode(a.Attributes["href"].Value), a);
}