C# HTML Agility pack-从相对路径解析img src和href
我有一个html,其中有img src和link href作为相对路径。我需要从相对移动到完整的url路径,如“http://localhost:port..“使用Html敏捷包 S3中的src=“/Expo/imagename.s3lb” href=“../Etch/Exposition/…aspx?sflang=en”C# HTML Agility pack-从相对路径解析img src和href,c#,html-agility-pack,C#,Html Agility Pack,我有一个html,其中有img src和link href作为相对路径。我需要从相对移动到完整的url路径,如“http://localhost:port..“使用Html敏捷包 S3中的src=“/Expo/imagename.s3lb” href=“../Etch/Exposition/…aspx?sflang=en” 有人能告诉我一个方法吗?谢谢 我现在无法测试或运行此功能,但您可以尝试类似的功能: var htmlStr = "yourhtml"; var doc = new HtmlD
有人能告诉我一个方法吗?谢谢 我现在无法测试或运行此功能,但您可以尝试类似的功能:
var htmlStr = "yourhtml";
var doc = new HtmlDocument();
doc.LoadHtml(htmlStr);
var baseUri = new Uri("baseUriOfYourSite");
var images = doc.DocumentNode.SelectNodes("//img/@src").ToList();
var links = doc.DocumentNode.SelectNodes("//a/@href").ToList();
foreach (var item in images.Concat(links))
{
item.InnerText = new Uri(baseUri, item.InnerText).AbsoluteUri;
}
我不确定InnerText是否可以作为setter。如果没有,则需要调用item.ParentNode.ReplaceChild(newNode,item);然而,主要的事情是使用Uri构造函数,它接受基本Uri和片段。它将把您提供的内容组合成一个绝对uri。