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标签[重复]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式在 HTML 中查找特定标签 [重复]

Python中如何查找和替换文本?

shell的查找与替换

用于查找html标签的正则表达式[重复]

在 HTML BeautifulSoup 中按文本查找和替换

查找和替换 MySQL [重复]