Получить все HTML-узлы в тексте

У меня есть некоторые тексты (не 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 ответ

Решение

Выделите все ссылки из документа, а затем замените их внутренний 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.
Другие вопросы по тегам