Ajouter dynamiquement une classe à la balise img à partir de tout le code HTML

asp.net c# html-agility-pack

Question

J'ai un éditeur riche qui ajoute du texte et des images, pour rendre les images sensibles

class="img-thumbnail"

est nécessaire dans toutes les balises d'image, nous avons donc utilisé le pack HtmlAgility pour extraire les balises d'image de l'ensemble du code HTML, mais comment ajouter la classe à chaque balise d'image.

Exemple

Entrée de HTML après l'extraction de la balise d'image

<img src="http://domain.com/images/image1.jpg">

Attendu

<img src="http://domain.com/images/image1.jpg" class="img-thumbnail">

Code

 public string ParseImage(string pHtml)
    {

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(pHtml);
        var imgs = doc.DocumentNode.SelectNodes("//img");

        foreach (var item in imgs)
        {
            string orig = item.Attributes["src"].Value;
            //Add class to each img tag.
        }
      }

Réponse acceptée

Je suppose que le problème réside dans le fait que vous devez enregistrer le code HTML avant de l'afficher. Sinon, HTML Agility Pack omet parfois les attributs modifiés.

public string ParseImage(string pHtml)
{

   HtmlDocument doc = new HtmlDocument();
   doc.LoadHtml(pHtml);
   var imgs = doc.DocumentNode.SelectNodes("//img");

    foreach (var item in imgs)
    {
        //string orig = item.Attributes["src"].Value;
        item.SetAttributeValue("class", "img-thumbnail");
        //Add class to each img tag.
    }
    using(StringWriter tw = new StringWriter ()){
        doc.Save(tw);
        return tw.ToString();
    }
 }

Réponse populaire

Vous pouvez ajouter des attributs à toutes vos balises d'image en CSS comme ceci

.img-thumbnail
{
  // your class property
}

img {
.img-thumbnail
}

Voici une question similaire.

Je souhaite appliquer un style CSS existant à toutes les étiquettes d'une page. Comment?



Related

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