Ajouter un lien vers une image avec HtmlAgilityPack dans Windows Phone

c# html-agility-pack windows-phone-7

Question

Je veux ajouter un lien vers chaque image du code HTML avec la valeur de l'attribut "href" soit l'attribut "src" de l'image. À savoir changer le

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

à

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

Et mon code à venir:

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

Alors, comment dois-je modifier mon code pour le faire fonctionner?

Mis à jour: après la mise à jour de mon code:

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

Une erreur indique "InvalidOperationException non gérée".

entrez la description de l'image ici

Réponse acceptée

Premièrement, vous pouvez utiliser xpath pour sélectionner <img> nœuds dont le nœud parent n'est pas <a> :

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

Ensuite, vous devriez parcourir ces nœuds. À chaque étape d'itération, créez simplement un nouvel élément et appliquez-y une itération, puis remplacez-le par le nouvel élément créé: <a> :

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

Réponse populaire

Essayez:

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);

et changer

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);

par

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 remplace le noeud




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi