在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.
这似乎有点棘手,我不确定从哪里开始这个最好的地方。任何帮助表示赞赏!
答案 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
}