HTMLAgility Pack - OuterHtml只讀?

html-agility-pack

嘿那裡,我正在遍歷我自己的代碼庫中的所有鏈接,並且出於本地化原因將它們從<a href="x"><asp:HyperLink> 。我正在使用HTMLAgilityPack(和其他東西),我想只為我找到的鏈接更改OuterHtml對象..但它是只讀的?

我是HAP的新手,我是否需要創建一個新節點並刪除舊節點?有沒有人碰到這個?

謝謝!

熱門答案

如果您將整個文檔視為字符串,為什麼要使用HTML Agility Pack。而是查找標籤並替換它們然後回寫文檔。

var doc = new HtmlDocument();
doc.LoadHtml(yourString); // or doc.Load(yourStream);

var links = doc.DocumentNode.Descendants("a");
foreach (var link in links)
{
    link.Parent.Replace(ConvertLink(link), link);
}
string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save();

你的ConvertLink看起來像這樣:

var doc = new HtmlDocument();
doc.LoadHtml(yourString); // or doc.Load(yourStream);

var links = doc.DocumentNode.Descendants("a");
foreach (var link in links)
{
    link.Parent.Replace(ConvertLink(link), link);
}
string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save();

(沒有編譯,所以可能需要一些調整)。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因