2016-07-22 2 views

ответ

0

Вы можете:

  1. Если ТРС не имеют никаких других, кроме высоты стилей, вы можете просто удалить раздеть их из атрибута стиля (линии я комментировал из)

  2. в противном случае, вы можете написать что-то вроде ниже фрагмент кода для фильтрации стиль ключи вы хотите удалить

    string html = @"<tr style='height:2px;'> 
           </tr> 
           <tr style='height:2px;'> 
           </tr>"; 
    
        HtmlDocument doc = new HtmlDocument(); 
        doc.LoadHtml(html); 
    
        var trs = doc.DocumentNode.SelectNodes("tr"); 
    
        foreach (var tr in trs) 
        { 
         Console.WriteLine(tr.OuterHtml); 
         //tr.Attributes.Remove("style"); 
    
         var filteredStyles = GetStyles(tr.GetAttributeValue("style"), "height"); 
         tr.SetAttributeValue("style", string.Join(":", filteredStyles)); 
    
         Console.WriteLine(tr.OuterHtml); 
        } 
    

Вспомогательная функция:

private static List<string> GetStyles(string style, params string[] keysToRemove) 
     { 
      List<string> styles = new List<string>(); 
      var stylesKeyPairs = style.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); 

      if (keysToRemove != null) 
      { 
       foreach (var styleKeyPair in stylesKeyPairs) 
       { 
        var styleKeys = styleKeyPair.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); 
        if (!keysToRemove.Contains(styleKeys.FirstOrDefault())) 
         styles.Add(styleKeyPair); 
       } 
      } 
      else 
       styles.AddRange(stylesKeyPairs); 

      return styles; 
     } 

Выход (для обоих растворов, в данном случае):

enter image description here

Смежные вопросы