HtmlAgilityPack编程 - 替换样式(style)的值-C/S开发框架
作者:csframework|C/S框架网  发布日期:2022/01/04 15:15:28

HtmlAgilityPack编程 - 替换样式(style)的值-C/S开发框架

HtmlAgilityPack编程 - 替换样式(style)的值

C# 全选
        /// <summary>
        /// 替换样式(style)的值
        /// </summary>
        /// <param name="doc">HtmlDocument对象</param>
        /// <param name="elementName">元素标记,img/p/div</param>
        /// <param name="styleName">样式名称,font-size,display</param>
        /// <param name="value"></param>
        protected void DoReplaceStyle(HtmlAgilityPack.HtmlDocument doc, string elementName, string styleName, string value)
        {
            var list = doc.DocumentNode.SelectNodes("//" + elementName);//img/p/div

            if (list != null && list.Count > 0)
            {
                styleName = styleName + ":";//样式标识添加冒号,font-size:

                foreach (HtmlNode node in list)
                {
                    var styles = node.GetAttributeValue("style", "");//获取样式

                    //获取数组;分开
                    var ss = styles.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

                    //组合新样式
                    StringBuilder sb = new StringBuilder();
                    foreach (var s in ss)
                    {
                        if (s.Replace(" ", "").ToLower().Contains(styleName.ToLower()))
                            sb.Append(styleName + value + ";");
                        else
                            sb.Append(s + ";");
                    }

                    //设置新样式
                    if (sb.Length > 0)
                        node.SetAttributeValue("style", sb.ToString());
                }
            }
        }
上一篇 下一篇