Пример #1
0
 /// <summary>
 /// Wrap <paramref name="wrappingElement"/> around the content of the element
 /// </summary>
 public static HElement WrapInner(this HElement element, HElement wrappingElement)
 {
     if (element != null && wrappingElement != null)
     {
         if (element.HasNodes)
         {
             element.Nodes().ToList().WrapAll(wrappingElement);
         }
         else
         {
             element.Append(wrappingElement.Clone());
         }
     }
     return(element);
 }
Пример #2
0
 /// <summary>
 /// Wrap <paramref name="wrappingElement"/> around the element
 /// </summary>
 public static T Wrap <T>(this T element, HElement wrappingElement) where T : HNode
 {
     if (element != null && wrappingElement != null)
     {
         var we = wrappingElement.Clone();
         var dp = we;
         while (dp.HasElements)
         {
             dp = dp.Elements().First();
         }
         if (element.Parent != null)
         {
             element.ReplaceWith(we);
         }
         dp.Append(element);
     }
     return(element);
 }
Пример #3
0
 /// <summary>
 /// Wrap <paramref name="wrappingElement"/> around all elements of the set.
 /// </summary>
 public static IEnumerable <T> WrapAll <T>(this IEnumerable <T> elements, HElement wrappingElement) where T : HNode
 {
     if (elements != null)
     {
         var we    = wrappingElement.Clone();
         var first = elements.FirstOrDefault(e => e != null);
         if (first != null)
         {
             first.ReplaceWith(we);
             var dp = we;
             while (dp.HasElements)
             {
                 dp = dp.Elements().First();
             }
             elements.Where(e => e != first).Remove();
             dp.Append(elements);
         }
     }
     return(elements);
 }