【问题标题】:How to remove a tag link a href without removing the link text in Html Agility Pack?如何在不删除 Html Agility Pack 中的链接文本的情况下删除标签链接 a href?
【发布时间】:2022-07-21 21:12:13
【问题描述】:
我必须用 HAP - HTML Agility Pack 替换标签,以便在不删除链接文本的情况下获取链接。例如在这种情况下:
<p>This is <a href="mylink">the link</a></p>
我想替换链接,想要的结果应该是:
<p>This is <span>the link<span></p>
【问题讨论】:
标签:
c#
.net
web-scraping
html-agility-pack
【解决方案1】:
我做了这个函数,得到一个 html 字符串作为输入。
public string CleanLinks(string input) {
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(input);
var links = doc.DocumentNode.SelectNodes("//a");
if (links == null) return input;
foreach (HtmlNode tb in links)
{
HtmlNode lbl = doc.CreateElement("span");
lbl.InnerHtml = tb.InnerHtml;
tb.ParentNode.ReplaceChild(lbl, tb);
}
return doc.DocumentNode.OuterHtml;
}