将查询字符串添加到HTML正文中的所有锚链接

时间:2011-12-06 01:05:34

标签: c# asp.net html

在C#中,给定一个包含HTML的字符串,在每个超链接的末尾自动添加查询字符串数据test=1的最佳方法是什么?它应该只修改锚点链接的href属性中的url(例如,不对图像URL等进行修改)。

一个例子是:

输入

<a href="http://www.test.com">Visit http://www.test.com</a> today
and see what <a href="http://www.test.com?p=1">deals</a> we have.

输出

<a href="http://www.test.com?test=1">Visit http://www.test.com</a> today
and see what <a href="http://www.test.com?p=1&test=1">deals</a> we have.

这似乎有点棘手,我不确定从哪里开始这个最好的地方。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:5)

HTML Agility Pack是一个非常好的解析HTML库。

获取html中所有文本的示例:

    HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load("Yor Path(local,web)"); 
    var result=doc.DocumentNode.SelectNodes("//body//text()");//return HtmlCollectionNode
    foreach(var node in result)
    {
        string AchivedText=node.InnerText;//Your desire text
    }