我是一名有用的助手,可以为您翻译文本。
我有一些使用HTML Agility Pack的代码。我的目标是替换HTML内容中的所有链接。
例如:我将替换标签之间的链接,并将其替换为其他内容。请注意,您需要保留HTML标记。
我有一些使用HTML Agility Pack的代码。我的目标是替换HTML内容中的所有链接。
例如:我将替换标签之间的链接,并将其替换为其他内容。请注意,您需要保留HTML标记。
http://oldserver/Documents/1.pdf
为了
http://newserver/Documents/2.pdf
我可以列举所有链接并获取它们的值,但是当我执行doc.Save()时,它保存的是原始的HTML源代码,而不是更新后的HTML。如何从HtmlDocument中获取更新后的HTML。
private string FixHyperlinks(string contentHtml, SPWeb web)
{
TextReader reader = new StringReader(contentHtml);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(reader);
List<string> hrefTags = new List<string>();
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
att.Value = RepairHyperlinkAddress(att.Value, web);
}
MemoryStream memoryStream = new MemoryStream();
doc.Save(memoryStream);
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
StreamReader streamReader = new StreamReader(memoryStream);
string result = streamReader.ReadToEnd();
return result;
}