從整個HTML動態添加類到img標記

asp.net c# html-agility-pack

我有一個豐富的編輯器,可以添加文本和圖像,使圖像響應

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

一般承認的答案

我想問題在於你需要在顯示之前保存HTML。否則,HTML Agility Pack有時會忽略更改的屬性。

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
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因