获取文本中的所有html节点

时间:2014-03-12 17:35:17

标签: c# html-agility-pack

我有一些文本(不是HTML文档),其他单词之间只有a个标签,就像这样(这个例子有两个a个节点):

<a rel="nofollow" target="_blank" href="http://loremipsum.net/">http://loremipsum.net/</a>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, <a rel="nofollow" target="_blank" href="http://loremipsum.net/">http://loremipsum.net/</a> sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

我想用单词"link"替换所有这些标签。此代码中的node

var node = HtmlNode.CreateNode(text);
var links = node.SelectNodes("//a[@href]");

只是指第一个链接,但我希望文本中的所有链接。我怎么才能找到它们?感谢。

1 个答案:

答案 0 :(得分:2)

从文档中选择所有链接,然后替换它们的内部html:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(text);

foreach (var link in doc.DocumentNode.SelectNodes("//a")) 
    link.InnerHtml = "link";

string result = doc.DocumentNode.OuterHtml;

结果是

<a rel="nofollow" target="_blank" href="http://loremipsum.net/">link</a> 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, <a rel="nofollow" 
target="_blank" href="http://loremipsum.net/">link</a> sed diam nonummy nibh 
euismod  tincidunt ut laoreet dolore magna aliquam erat volutpat.