Динамически добавлять класс к тегу img из всего HTML

asp.net c# html-agility-pack

Вопрос

У меня есть богатый редактор, который добавляет текст и изображения, чтобы сделать изображения чувствительными

class="img-thumbnail"

требуется во всех тегах изображения, поэтому они использовали HtmlAgility pack для извлечения тегов изображений из всего Html, но как добавить класс в каждый тег изображения.

пример

Вход из html после извлечения тега изображения

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

ожидаемый

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

Код

 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.
        }
      }

Принятый ответ

Я предполагаю, что проблема заключается в том, что вам нужно сохранить HTML-код перед его отображением. В противном случае пакет гибкости HTML иногда опускает измененные атрибуты.

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

Популярные ответы

Вы можете добавлять атрибуты ко всем вашим тегам изображения в css, как это

.img-thumbnail
{
  // your class property
}

img {
.img-thumbnail
}

Вот аналогичный вопрос.

Я хочу применить существующий стиль CSS ко всем меткам на странице. Как?



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow