/// <summary>
 /// Get the contents of the element
 /// </summary>
 public static IEnumerable <HNode> Contents(this HElement element)
 {
     if (element != null)
     {
         return(element.Nodes());
     }
     return(Enumerable.Empty <HNode>());
 }
 /// <summary>
 /// Get the combined text contents of the element, including his descendants.
 /// </summary>
 public static String Text(this HElement element)
 {
     if (element != null)
     {
         return(String.Concat(
                    element
                    .Nodes()
                    .Select(n => (n is HText) ? ((HText)n).Value : (n is HElement) ? ((HElement)n).Text() : String.Empty)
                    ));
     }
     return(String.Empty);
 }
 /// <summary>
 /// Get the HTML content of an element
 /// </summary>
 public static String Html(this HElement element)
 {
     if (element != null)
     {
         StringBuilder result = new StringBuilder();
         foreach (var content in element.Nodes())
         {
             result.Append(HSerializer.DefaultSerializer.SerializeNode(content));
         }
         return(result.ToString());
     }
     return(String.Empty);
 }
 /// <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);
 }