Пример #1
0
 /// <summary>
 /// Serialize an element
 /// </summary>
 protected virtual void SerializeElement(HElement element, TextWriter writer)
 {
     writer.Write("<{0}", element.Name);
     foreach (var attr in element.Attributes())
     {
         SerializeAttribute(attr.Name, attr.Value, writer);
     }
     if (element.HasNodes || !IsVoidElement(element.Name))
     {
         writer.Write(">");
         if (IsRawElement(element.Name))
         {
             SerializeRawText(element.Nodes(), writer);
         }
         else if (IsEscapableRawElement(element.Name))
         {
             SerializeEscapableRawText(element.Nodes(), writer);
         }
         else
         {
             SerializeContainer(element, writer);
         }
         writer.Write("</{0}>", element.Name);
     }
     else
     {
         writer.Write(" />");
     }
 }
Пример #2
0
 /// <summary>
 /// Indicates if an element contains any data value
 /// </summary>
 public static bool HasData(this HElement element)
 {
     if (element == null)
     {
         return(false);
     }
     return(element.Attributes().Where(attr => attr.Name.StartsWith("data-", StringComparison.OrdinalIgnoreCase)).Any());
 }
Пример #3
0
 /// <summary>
 /// Remove a list of data values to an element
 /// </summary>
 public static HElement RemoveData(this HElement element, params String[] keys)
 {
     if (element != null)
     {
         // Build the key list from the context
         if (keys != null && keys.Length > 0)
         {
             // Convert all keys to data keys
             keys = keys.Select(k => MakeDataKey(k)).ToArray();
         }
         else
         {
             // Extract all data keys
             keys = element.Attributes().Where(attr => attr.Name.StartsWith("data-", StringComparison.OrdinalIgnoreCase)).Select(attr => attr.Name).ToArray();
         }
         foreach (var key in keys)
         {
             element.Attr(key, null);
         }
     }
     return(element);
 }