public string Serialize(HtmlSerializeOptions serializeOptions)
        {
            StringBuilder stringBuilder = new StringBuilder();

            Serialize(stringBuilder, 0, serializeOptions);
            return(stringBuilder.ToString());
        }
 public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions)
 {
     AddDepth(builder, depth);
     builder.Append('<');
     builder.Append('!');
     builder.Append(Doctype);
     builder.Append('>');
 }
 public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions)
 {
     if (Doctype != null)
     {
         Doctype.Serialize(builder, depth, serializeOptions);
         if (serializeOptions != HtmlSerializeOptions.NoFormatting)
         {
             builder.AppendLine();
         }
     }
     base.Serialize(builder, depth, serializeOptions);
 }
Exemple #4
0
        public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions)
        {
            int extraLength = IsVoid ? 0 : (3 + Value.Length);

            builder.EnsureCapacity(builder.Capacity + Name.Length + extraLength);
            builder.Append(Name);
            if (!IsVoid)
            {
                builder.Append('=');
                builder.Append('"');
                builder.Append(Value);
                builder.Append('"');
            }
        }
Exemple #5
0
        public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions)
        {
            AddDepth(builder, depth);
            SerializeOpenTag(builder, depth, serializeOptions);
            if (IsVoid)
            {
                return;
            }

            IEnumerable <HtmlNode> nodes = Nodes();
            bool mixedMode = nodes.Any(node => node.ObjectType == HtmlObjectType.Text);

            //bool formattedSubNode = false;
            foreach (HtmlNode node in nodes)
            {
                HtmlElement element         = node as HtmlElement;
                bool        nodeHasElements = element != null && element.HasElements;
                if (mixedMode && !nodeHasElements)
                {
                    node.Serialize(builder, 0, serializeOptions);
                }
                else
                {
                    if (serializeOptions != HtmlSerializeOptions.NoFormatting)
                    {
                        builder.AppendLine();
                    }
                    node.Serialize(builder, depth + 1, serializeOptions);

                    // We don't want many grandchild/greatgrandchild nodes in mixed mode printed inline.
                    if (nodeHasElements && mixedMode && serializeOptions != HtmlSerializeOptions.NoFormatting)
                    {
                        builder.AppendLine();
                    }
                }
            }
            if (!mixedMode && HasNodes)
            {
                if (serializeOptions != HtmlSerializeOptions.NoFormatting)
                {
                    builder.AppendLine();
                }
                AddDepth(builder, depth);
            }

            builder.Append("</");
            builder.Append(Tag);
            builder.Append('>');
        }
Exemple #6
0
        private void SerializeOpenTag(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions)
        {
            builder.Append('<');
            builder.Append(Tag);

            if (_attributes._count != 0)
            {
                foreach (var attribute in Attributes())
                {
                    builder.Append(' ');
                    attribute.Serialize(builder, 0, serializeOptions);
                }
            }
            builder.Append(IsVoid ? " />" : ">");
        }
Exemple #7
0
 public abstract void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions);
Exemple #8
0
 public string Serialize(HtmlSerializeOptions serializeOptions)
 {
     StringBuilder stringBuilder = new StringBuilder();
     Serialize(stringBuilder, 0, serializeOptions);
     return stringBuilder.ToString();
 }
Exemple #9
0
 public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions) { }
Exemple #10
0
 public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions)
 {
 }
Exemple #11
0
 public abstract void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions);
Exemple #12
0
 public override void Serialize(StringBuilder builder, int depth, HtmlSerializeOptions serializeOptions) => builder.Append(Text);