亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何更新 HTML 樣式屬性

如何更新 HTML 樣式屬性

C#
慕的地8271018 2022-12-31 12:45:06
我有 ac# .net core 2.2 應用程序,我正在嘗試解析 HTML 頁面并編輯一些樣式屬性。我正在使用 HTML Agility Pack在我的 HTML 中,我有一個具有多種樣式的 Id。<td id="bannerTop" class="alert alert-warning" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 16px; vertical-align: top; color: #fff; font-weight: 500; text-align: center; border-radius: 3px 3px 0 0; background-color: #FF9F00; margin: 0; padding: 20px;" align="center" bgcolor="#FF9F00" valign="top">我想將此元素稱為“bannerTop”并編輯樣式背景顏色var htmlDoc = new HtmlDocument();htmlDoc.LoadHtml(selectedTemplate.HtmlTemplateString);var bannerTop = htmlDoc.GetElementbyId("bannerTop");bannerTop.Attributes["style"].Value = "background-color: #0000FF";但這會覆蓋所有樣式屬性,我怎么能只編輯其中一個呢?我是否需要對bannerTop.Attributes["style"]返回的字符串進行手動解析,或者是否有 HTML Agility Pack 允許編輯單個樣式的更簡單方法?
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

您需要從屬性中獲取樣式,然后遍歷它們以手動更改樣式的特定項。


我會分裂“;” 然后“:”獲取名稱/值對。遍歷它們,將名稱小寫,如果匹配則更改值。bgcolor否則,將原始值附加到newStyles。


var bannerTop = htmlDoc.GetElementbyId("bannerTop");

string oldStyle = bannerTop.Attributes["style"].Value;

string newStyles = "";

foreach (var entries in oldStyle.Split(';'))

{

    var values = entries.Split(':');

    if (values[0].ToLower() == "bgcolor")

    {                                                                   

        values[1] = "#0000FF";

        newStyles += String.Join(':', values) + ";";

    }

    else

    {

        newStyles += entries + ";";

    }


}


bannerTop.Attributes["style"].Value = newStyles;


查看完整回答
反對 回復 2022-12-31
  • 1 回答
  • 0 關注
  • 106 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號