Fügen Sie die Klasse dynamisch dem HTML-Tag img hinzu

asp.net c# html-agility-pack

Frage

Ich habe einen umfangreichen Editor, der Text und Bilder hinzufügt, um die Bilder ansprechbar zu machen

class="img-thumbnail"

wird in allen Bild-Tags benötigt, also habe ich das HtmlAgility-Paket verwendet, um Bild-Tags aus dem gesamten HTML-Code zu extrahieren, aber wie man die Klasse zu jedem Bild-Tag hinzufügt.

Beispiel

Eingabe aus HTML nach dem Extrahieren des Bild-Tags

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

Erwartet

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

Akzeptierte Antwort

Ich vermute, das Problem liegt darin, dass Sie den HTML-Code speichern müssen, bevor Sie ihn anzeigen. Andernfalls werden in HTML Agility Pack manchmal die geänderten Attribute weggelassen.

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

Beliebte Antwort

Sie können Attribute zu allen Ihren Bild-Tags in CSS wie diesem hinzufügen

.img-thumbnail
{
  // your class property
}

img {
.img-thumbnail
}

Hier ist eine ähnliche Frage.

Ich möchte einen vorhandenen CSS-Stil auf alle Labels auf einer Seite anwenden. Wie?



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum