HTML Agility包 - 从相对路径解析img src和href

c# html-agility-pack

我有一个html,它有img src和链接href作为相对路径。我需要使用Html Agility Pack从“http:// localhost:port ..”转移到相对完整的url路径。

S3中的src =“/ Expo / imagename.s3lb”href =“../ Etch / Exposition / ... aspx?sflang = en”

有人可以告诉我一种方法吗?谢谢。

一般承认的答案

我现在无法测试或运行,但您可以尝试这样的事情:

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;    
}


Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因