Я хочу добавить ссылку на каждое изображение в HTML со значением атрибута «href», являющегося атрибутом «src» изображения.А именно:
"<p> <img src="test.jpg"/></p>"
на
<p><a href="test.jpg"><img src="jpg"/></a></p>
И мой код:
using HtmlAgilityPack;
var imgs = document.DocumentNode.Descendants("img");
foreach (HtmlNode node in imgs)
{
if (node.ParentNode.Name != "a")
{
string replaceStr = string.Format("<a href=\"{0}\">{1}</a>", node.GetAttributeValue("src", null), node.OuterHtml);
//node.OuterHtml= replaceStr; It doesn't work, the outerHtml is readonly
//node.ParentNode.RemoveChild(node, true);
}
}
Итак, как мне изменить свой код, чтобы он работал?
Обновлено: после обновления мой код:
var imgs = document.DocumentNode.Descendants("img");
foreach (var node in imgs)
{
if (node.ParentNode.Name != "a")
{
var a = document.CreateElement("a");
a.SetAttributeValue("href", node.GetAttributeValue("src", null));
a.ChildNodes.Add(node);
node.ParentNode.ReplaceChild(a, node);
}
}
Появляется ошибка «Необработанное исключение InvalidOperationException».