2012-07-16 47 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