HTML查找和替换href标签[重复]
Posted
技术标签:
【中文标题】HTML查找和替换href标签[重复]【英文标题】:HTML find and replace href tags [duplicate] 【发布时间】:2012-10-19 00:57:02 【问题描述】:可能重复:What is the best way to parse html in C#?
我正在解析一个 HTML 文件。我需要在 html 中找到所有 href 标签并替换它们 带有文本友好的版本。
这是一个例子。
Original Text: <a href="http://foo.bar">click here</a>
replacement value: click here <http://foo.bar>
我如何做到这一点?
【问题讨论】:
提示正则表达式火焰战争。 带有正则表达式和反向引用 @Cyborgx37 他没有要求regex
..问题有效
@Fake.It.Til.U.Make.It - 我知道。但是这样一个开放式问题肯定会导致一个包含正则表达式的答案,然后是强制性的You can't use regex to parse HTML,然后是Oh yes you can!
@Cyborgx37 当您从 html 标签中获取纯文本数据时,这将导致 哦,是的,您可以!...
【参考方案1】:
您可以使用Html Agility Pack library,代码如下:
HtmlDocument doc = new HtmlDocument();
doc.Load(myHtmlFile); // load your file
// select recursively all A elements declaring an HREF attribute.
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//a[@href]"))
node.ParentNode.ReplaceChild(doc.CreateTextNode(node.InnerText + " <" + node.GetAttributeValue("href", null) + ">"), node);
doc.Save(Console.Out); // output the new doc.
【讨论】:
请注意(根据meta.stackexchange.com/questions/156184 的要求),Simon 推荐的库是他的作者。目前最引人注目的竞争对手是CsQuery。以上是关于HTML查找和替换href标签[重复]的主要内容,如果未能解决你的问题,请参考以下文章