替换c#链接,替换多条行不工作
本文关键字:替换 工作 链接 | 更新日期: 2023-09-27 18:09:17
我想通过所有的html链接(<a hef="" ><image/></a>
),我想用仅href值替换它们。要做到这一点,我使用HtmlAgilityPack来获取所有链接,然后我尝试用href.
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>
怎么解呢?我想只显示链接的文本部分,后面是href值。
这里不需要(也不应该使用)正则表达式。这就是首先使用解析器的全部意义。
HtmlDocument doc = ...;
var query = doc.DocumentNode.Descendants("a");
foreach (var a in query.ToArray())
{
a.ParentNode.ReplaceChild(HtmlNode.CreateNode(a.Attributes["href"].Value), a);
}