在Windows Phone中使用HtmlAgilityPack添加指向圖像的鏈接


我想為HTML中的每個圖像添加一個鏈接,其中“href”屬性的值是圖像的“src”屬性。即改變了

 "<p> <img src="test.jpg"/></p>"

 "<p> <img src="test.jpg"/></p>"

我的代碼來了:

 "<p> <img src="test.jpg"/></p>"

那麼我應該如何修改我的代碼以使其工作?

更新:更新我的代碼後:

 "<p> <img src="test.jpg"/></p>"

錯誤顯示“未處理的InvalidOperationException”。

在此處輸入圖像描述

一般承認的答案

首先,您可以使用xpath選擇父節點不是<a> <img>節點:

var imgs = doc.DocumentNode.SelectNodes("//img[not(parent::a)]").ToList();

然後你應該迭代這些節點。在每個迭代步驟中,只需為它創建一個新的''元素,附加迭代'',然後用新創建的<a>替換'':

var imgs = doc.DocumentNode.SelectNodes("//img[not(parent::a)]").ToList();

熱門答案

試試:

string replaceStr = string.Format("<a href=\"{0}\">{1}</a>", node.GetAttributeValue("src", null), node.OuterHtml);
var newNode = HtmlNode.CreateNode(replaceStr);
node.ParentNode.ReplaceChild(newNode.ParentNode, node);

並改變

string replaceStr = string.Format("<a href=\"{0}\">{1}</a>", node.GetAttributeValue("src", null), node.OuterHtml);
var newNode = HtmlNode.CreateNode(replaceStr);
node.ParentNode.ReplaceChild(newNode.ParentNode, node);

通過

string replaceStr = string.Format("<a href=\"{0}\">{1}</a>", node.GetAttributeValue("src", null), node.OuterHtml);
var newNode = HtmlNode.CreateNode(replaceStr);
node.ParentNode.ReplaceChild(newNode.ParentNode, node);

HtmlAgilityPack替換節點





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