Зачем использовать HTML Agility Pack, если вы рассматриваете весь документ как строку. Вместо этого найдите теги и замените их, а затем запишите обратно документ.
var doc = new HtmlDocument();
doc.LoadHtml(yourString); // or doc.Load(yourStream);
var links = doc.DocumentNode.Descendants("a");
foreach (var link in links)
{
link.Parent.Replace(ConvertLink(link), link);
}
string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save();
И ваш ConvertLink
будет выглядеть так:
public HtmlNode ConvertLink(HtmlNode aTag)
{
var link = HtmlNode.Create("asp:HyperLink");
link.Attributes.Add(...);
return link;
}
(не скомпилировано, поэтому может потребоваться некоторая настройка).