2012-07-16 85 views
0

我有一个具有img src和链接href作为相对路径的html。我需要使用Html Agility Pack从相对完整的url路径(如“http:// localhost:port ..”)移动。HTML敏捷包 - 从相对路径解析img src和href

SRC = “/博览会/ imagename.s3lb” 在S3 HREF = “../蚀刻/博览会/ ... ASPX?sflang = EN”

有人能告诉我做这件事的方式?谢谢。

回答

2

我不能测试或现在运行它,但你可以尝试这样的事情:

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

我不知道,如果作品的innerText作为二传手。如果没有,你需要调用item.ParentNode.ReplaceChild(newNode,item); – 2012-07-16 18:48:31

+1

尽管如此,最主要的是使用Uri构造函数来获取基本uri和片段。它将把你提供的东西结合到一个绝对的uri中。 – Ani 2012-07-16 18:50:18