Ejemplo n.º 1
0
        internal static HtmlText Create(string doc, HtmlTag startTag, HtmlTag endTag)
        {
            var startIndex = 0;

            if (startTag != null)
            {
                startIndex = startTag.StartIndex + startTag.Length;
            }

            var endIndex = doc.Length;

            if (endTag != null)
            {
                endIndex = endTag.StartIndex;
            }

            var text = new HtmlText(doc, startIndex, endIndex);

            if (text != null && !string.IsNullOrEmpty(text.Content))
            {
                return(text);
            }

            return(null);
        }
Ejemplo n.º 2
0
        private static string AddFragments(TagReader reader, HtmlFragment parentFragment, Stack <string> openTagStack)
        {
            while (reader.Read())
            {
                parentFragment.TryToAddText(HtmlText.Create(reader.Document, reader.PreviousTag, reader.CurrentTag));

                if (reader.CurrentTag.TagType == TagType.Close && openTagStack.Any(t => t.Equals(reader.CurrentTag.Name, StringComparison.CurrentCultureIgnoreCase)))
                {
                    return(reader.CurrentTag.Name);
                }

                var node = parentFragment.AddNode(reader.CurrentTag);
                node.Parent = parentFragment;

                if (reader.CurrentTag.TagType == TagType.Open)
                {
                    openTagStack.Push(reader.CurrentTag.Name);

                    var lastClosed = AddFragments(reader, node, openTagStack);
                    if (lastClosed != openTagStack.Pop())
                    {
                        return(lastClosed);
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 3
0
 internal void TryToAddText(HtmlText text)
 {
     if (text != null)
     {
         Fragments.Add(text);
     }
 }
Ejemplo n.º 4
0
 internal void TryToAddText(HtmlText text)
 {
     if (text != null)
     {
         Fragments.Add(text);
     }
 }
Ejemplo n.º 5
0
 internal static HtmlText Create(string doc, HtmlTag startTag, HtmlTag endTag)
 {
     if (startTag != null && endTag != null)
     {
         var text = new HtmlText(doc, startTag.StartIndex + startTag.Length, endTag.StartIndex);
         if (text != null && !string.IsNullOrEmpty(text.Content))
         {
             return(text);
         }
     }
     return(null);
 }
Ejemplo n.º 6
0
        internal static HtmlText Create(string doc, HtmlTag startTag, HtmlTag endTag)
        {
            var startIndex = 0;

            if (startTag != null)
            {
                startIndex = startTag.StartIndex + startTag.Length;
            }

            var endIndex = doc.Length;

            if (endTag != null)
            {
                endIndex = endTag.StartIndex;
            }

            var text = new HtmlText(doc, startIndex, endIndex);
            if (text != null && !string.IsNullOrEmpty(text.Content))
            {
                return text;
            }

            return null;
        }