2016-09-25 1 views
1

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

class="img-thumbnail" 

необходим во всех тегах изображений, поэтому использовал HtmlAgility пакет для извлечения теги изображений из всего 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. 
     } 
     } 
+0

Почему вы не делаете это с помощью javascript? –

+0

Невозможно использовать javascript, поскольку сервер хостинга не поддерживает его. – Dave

ответ

1

Я думаю, что проблема заключается в том, что вам нужно, чтобы сохранить 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(); 
    } 
} 
+0

Как добавить класс = "img-thumbnail" в тег img, не может создать объект TextWriter как его абстрактный класс. – Dave

+0

Привет, я отредактировал свой ответ, просто замените TextWriter на StringWriter –

+0

Хорошо. но получение требуется как добавить класс в тег img. – Dave

0

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

.img-thumbnail 
{ 
    // your class property 
} 

img { 
.img-thumbnail 
} 

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

I want to apply an existing CSS style to all labels on a page. How?

+0

попробовал его, прежде чем он не сработал. – Dave

+0

Какой вид imgs превращается? – CopyPasterino

+0

var - это просто переменная, объявленная динамически, вот и все. – Dave