<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>Html Agility Pack</title><link>http://htmlagilitypack.codeplex.com/Project/ProjectRss.aspx</link><description>Html Agility Pack is an agile HTML parser library that proposes a read&amp;#47;write DOM and supports plain XPATH or XSLT. It allows you to parse &amp;#34;out of the web&amp;#34; HTML files. The parser is very tolerant wi...</description><item><title>New Post: Where is FormsProcessor / AddOns </title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60967</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I recently had this same problem and was able to finally resolve it today, by creatively using Google's Cache.&lt;/p&gt;
&lt;p&gt;&lt;a title=Here href="http://74.125.47.132/search?q=cache:IKZRy1hc9WkJ:www.dotnetjunkies.com/WebLog/joshuagough/archive/2006/01/20/134825.aspx+inurl:dotnetjunkies+inurl:joshuagough+site:www.dotnetjunkies.com&amp;cd=41&amp;hl=en&amp;ct=clnk&amp;gl=us&amp;client=firefox-a"&gt;Here&lt;/a&gt; is the original article.&lt;/p&gt;
&lt;p&gt;And &lt;a title=Here href="http://apps.ultravioletconsulting.com/projects/uvcwebtransform/source/FormProcessor.zip"&gt;Here&lt;/a&gt; is the direct link.&lt;/p&gt;
&lt;p&gt;Hope I could help!&lt;/p&gt;&lt;/div&gt;</description><author>kersny</author><pubDate>Fri, 03 Jul 2009 21:07:48 GMT</pubDate><guid isPermaLink="false">New Post: Where is FormsProcessor / AddOns  20090703090748P</guid></item><item><title>Reviewed: 1.3.0.0 Production (Jul 02, 2009)</title><link>http://htmlagilitypack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=272</link><description>Rated 5 Stars &amp;#40;out of 5&amp;#41; - Thanks a lot. Just awesome tool, saved my couple of days &amp;#33;&amp;#33;&amp;#33;</description><author>nilang</author><pubDate>Thu, 02 Jul 2009 21:14:34 GMT</pubDate><guid isPermaLink="false">Reviewed: 1.3.0.0 Production (Jul 02, 2009) 20090702091434P</guid></item><item><title>Reviewed: 1.3.0.0 Production (Jul 02, 2009)</title><link>http://htmlagilitypack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=272</link><description>Rated 5 Stars &amp;#40;out of 5&amp;#41; - Just awesome tools, saved my couple of days &amp;#58;&amp;#41;</description><author>nilang</author><pubDate>Thu, 02 Jul 2009 21:14:00 GMT</pubDate><guid isPermaLink="false">Reviewed: 1.3.0.0 Production (Jul 02, 2009) 20090702091400P</guid></item><item><title>Reviewed: 1.3.0.0 Production (jul 02, 2009)</title><link>http://htmlagilitypack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=272</link><description>Rated 5 Stars &amp;#40;out of 5&amp;#41; - Genial thanks boy&amp;#33;&amp;#33;&amp;#33;</description><author>gustavoali</author><pubDate>Thu, 02 Jul 2009 10:52:51 GMT</pubDate><guid isPermaLink="false">Reviewed: 1.3.0.0 Production (jul 02, 2009) 20090702105251A</guid></item><item><title>New Post: InnerText problems</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=61007</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;There should be #text node after the select node inside the td node's children&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;HTML&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;HEAD&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;

&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;HEAD&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;BODY&lt;/span&gt; &lt;span style="color:Red"&gt;BGCOLOR&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;#FFFFFF&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;TOPMARGIN&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;LEFTMARGIN&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;MARGINWIDTH&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;MARGINHEIGHT&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;TEXT&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;#000000&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;onLoad&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;initPopup()&amp;quot;&lt;/span&gt; &lt;span style="color:Red"&gt;onUnload&lt;/span&gt;&lt;span style="color:Blue"&gt;=&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;quot;exitPopup()&amp;quot;&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;table&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;tr&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;td&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;select&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;option&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;option1&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;option&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;select&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
text
&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;td&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;tr&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;table&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;BODY&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;HTML&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;

&lt;/pre&gt;
&lt;/div&gt;
I found it at&lt;/p&gt;
&lt;p&gt;doc.DocumentNode.ChildNodes[2].ChildNodes[&amp;quot;body&amp;quot;].ChildNodes[&amp;quot;table&amp;quot;].ChildNodes[&amp;quot;tr&amp;quot;].ChildNodes[&amp;quot;td&amp;quot;].ChildNodes[&amp;quot;select&amp;quot;].NextSibling.InnerText&lt;/p&gt;
&lt;p&gt;Any text found within a tag is contained in a #text node. This includes the newlines before/after tags. It does make it a bit hard&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>DarthObiwan</author><pubDate>Tue, 30 Jun 2009 01:06:16 GMT</pubDate><guid isPermaLink="false">New Post: InnerText problems 20090630010616A</guid></item><item><title>New Post: InnerText problems</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=61007</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Not sure if this is a bug or feature.&lt;/p&gt;
&lt;p&gt;I'm trying to parse for text within an HTML page with a form and when I use the InnerText property for let's say:&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;td&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;select&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515"&gt;option&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;option1&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;option&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;select&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
text
&lt;span style="color:Blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515"&gt;td&lt;/span&gt;&lt;span style="color:Blue"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;if the node is select the InnerText property returns 'option1'.&amp;nbsp; or the td node will return option1text.&amp;nbsp; What I'm trying to parse is just for 'text' for instance.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is there a way to make InnerText property not fetch the innertext of nodes?&lt;/p&gt;&lt;/div&gt;</description><author>lehel</author><pubDate>Tue, 30 Jun 2009 00:26:56 GMT</pubDate><guid isPermaLink="false">New Post: InnerText problems 20090630122656A</guid></item><item><title>New Post: Selecting a specific bolded text</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60963</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;The Descendants() method should be added to the HtmlNode.cs file.&lt;/p&gt;
&lt;p&gt;If you don't want to edit the html agility pack source code, you can add an extension method.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue"&gt;using&lt;/span&gt; System.Text;

&lt;span style="color:Blue"&gt;namespace&lt;/span&gt; HtmlAgilityPack
{
    &lt;span style="color:Blue"&gt;public static&lt;/span&gt; &lt;span style="color:Blue"&gt;class&lt;/span&gt;&lt;span style="color:MediumTurquoise"&gt; Extensions
    &lt;/span&gt;{
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;static&lt;/span&gt; IEnumerable&amp;lt;HtmlNode&amp;gt; Descendants(&lt;span style="color:Blue"&gt;this&lt;/span&gt; HtmlNode theNode)
        {
            List&amp;lt;HtmlNode&amp;gt; list = &lt;span style="color:Blue"&gt;new&lt;/span&gt; List&amp;lt;HtmlNode&amp;gt;();

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (theNode.HasChildNodes)
                list.AddRange(theNode.ChildNodes);

            &lt;span style="color:Blue"&gt;foreach&lt;/span&gt; (var node &lt;span style="color:Blue"&gt;in&lt;/span&gt; theNode.ChildNodes)
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node.HasChildNodes)
                    list.AddRange(node.Descendants());

            &lt;span style="color:Blue"&gt;return&lt;/span&gt; list;
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Though all of this may need the HtmlCollection.cs to be modified. Here's my copy (I'm hoping to get these changes added to Html Agility Pack once I get get in touch with simonm)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue"&gt;using&lt;/span&gt; System.Collections;
&lt;span style="color:Blue"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue"&gt;using&lt;/span&gt; System.Linq;

&lt;span style="color:Blue"&gt;namespace&lt;/span&gt; HtmlAgilityPack
{
    &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span style="color:Gray"&gt;///&lt;/span&gt;&lt;span style="color:Green"&gt; Represents a combined list and collection of HTML nodes.&lt;/span&gt;
    &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;class&lt;/span&gt;&lt;span style="color:MediumTurquoise"&gt; HtmlNodeCollection : IList&amp;lt;HtmlNode&amp;gt;
    &lt;/span&gt;{
        &lt;span style="color:Blue"&gt;private&lt;/span&gt; List&amp;lt;HtmlNode&amp;gt; items = &lt;span style="color:Blue"&gt;new&lt;/span&gt; List&amp;lt;HtmlNode&amp;gt;();
        &lt;span style="color:Blue"&gt;private&lt;/span&gt; HtmlNode _parentnode;

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; HtmlNodeCollection(HtmlNode parentnode)
        {
            _parentnode = parentnode; &lt;span style="color:Green"&gt;// may be null&lt;/span&gt;
        }

        &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray"&gt;///&lt;/span&gt;&lt;span style="color:Green"&gt; Gets the number of elements actually contained in the list.&lt;/span&gt;
        &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;int&lt;/span&gt; Count
        {
            &lt;span style="color:Blue"&gt;get&lt;/span&gt;
            {
                &lt;span style="color:Blue"&gt;return&lt;/span&gt; items.Count;
            }
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Clear()
        {
            &lt;span style="color:Blue"&gt;foreach&lt;/span&gt; (HtmlNode node &lt;span style="color:Blue"&gt;in&lt;/span&gt; items)
            {
                node._parentnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
                node._nextnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
                node._prevnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            }
            items.Clear();
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; RemoveAt(&lt;span style="color:Blue"&gt;int&lt;/span&gt; index)
        {
            HtmlNode next = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            HtmlNode prev = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            HtmlNode oldnode = (HtmlNode)items[index];

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index &amp;gt; 0)
            {
                prev = (HtmlNode)items[index - 1];
            }

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index &amp;lt; (items.Count - 1))
            {
                next = (HtmlNode)items[index + 1];
            }

            items.RemoveAt(index);

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (prev != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (next == prev)
                {
                    &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
                }
                prev._nextnode = next;
            }

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (next != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                next._prevnode = prev;
            }

            oldnode._prevnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            oldnode._nextnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            oldnode._parentnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Replace(&lt;span style="color:Blue"&gt;int&lt;/span&gt; index, HtmlNode node)
        {
            HtmlNode next = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            HtmlNode prev = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            HtmlNode oldnode = (HtmlNode)items[index];

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index &amp;gt; 0)
            {
                prev = (HtmlNode)items[index - 1];
            }

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index &amp;lt; (items.Count - 1))
            {
                next = (HtmlNode)items[index + 1];
            }

            items[index] = node;

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (prev != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node == prev)
                {
                    &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
                }
                prev._nextnode = node;
            }

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (next != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                next._prevnode = node;
            }

            node._prevnode = prev;
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (next == node)
            {
                &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
            }
            node._nextnode = next;
            node._parentnode = _parentnode;

            oldnode._prevnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            oldnode._nextnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            oldnode._parentnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Insert(&lt;span style="color:Blue"&gt;int&lt;/span&gt; index, HtmlNode node)
        {
            HtmlNode next = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            HtmlNode prev = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index &amp;gt; 0)
            {
                prev = (HtmlNode)items[index - 1];
            }

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index &amp;lt; items.Count)
            {
                next = (HtmlNode)items[index];
            }

            items.Insert(index, node);

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (prev != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node == prev)
                {
                    &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
                }
                prev._nextnode = node;
            }

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (next != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                next._prevnode = node;
            }

            node._prevnode = prev;

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (next == node)
            {
                &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
            }

            node._nextnode = next;
            node._parentnode = _parentnode;
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Append(HtmlNode node)
        {
            HtmlNode last = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (items.Count &amp;gt; 0)
            {
                last = (HtmlNode)items[items.Count - 1];
            }

            items.Add(node);
            node._prevnode = last;
            node._nextnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            node._parentnode = _parentnode;
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (last != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (last == node)
                {
                    &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
                }
                last._nextnode = node;
            }
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Prepend(HtmlNode node)
        {
            HtmlNode first = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (items.Count &amp;gt; 0)
            {
                first = (HtmlNode)items[0];
            }

            items.Insert(0, node);

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node == first)
            {
                &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; InvalidProgramException(&lt;span style="color:#A31515"&gt;&amp;quot;Unexpected error.&amp;quot;&lt;/span&gt;);
            }
            node._nextnode = first;
            node._prevnode = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            node._parentnode = _parentnode;
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (first != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
            {
                first._prevnode = node;
            }
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Add(HtmlNode node)
        {
            items.Add(node);
        }

        &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray"&gt;///&lt;/span&gt;&lt;span style="color:Green"&gt; Gets the node at the specified index.&lt;/span&gt;
        &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; HtmlNode &lt;span style="color:Blue"&gt;this&lt;/span&gt;[&lt;span style="color:Blue"&gt;int&lt;/span&gt; index]
        {
            &lt;span style="color:Blue"&gt;get&lt;/span&gt;
            {
                &lt;span style="color:Blue"&gt;return&lt;/span&gt; items[index] &lt;span style="color:Blue"&gt;as&lt;/span&gt; HtmlNode;
            }
            &lt;span style="color:Blue"&gt;set&lt;/span&gt;
            {
                items[index] = value;
            }
        }
      
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;int&lt;/span&gt; GetNodeIndex(HtmlNode node)
        {
            &lt;span style="color:Green"&gt;// TODO: should we rewrite this? what would be the key of a node?&lt;/span&gt;
            &lt;span style="color:Blue"&gt;for&lt;/span&gt; (&lt;span style="color:Blue"&gt;int&lt;/span&gt; i = 0; i &amp;lt; items.Count; i++)
            {
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node == ((HtmlNode)items[i]))
                {
                    &lt;span style="color:Blue"&gt;return&lt;/span&gt; i;
                }
            }
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; -1;
        }

        &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray"&gt;///&lt;/span&gt;&lt;span style="color:Green"&gt; Gets a given node from the list.&lt;/span&gt;
        &lt;span style="color:Gray"&gt;///&lt;/span&gt; &lt;span style="color:Gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;int&lt;/span&gt; &lt;span style="color:Blue"&gt;this&lt;/span&gt;[HtmlNode node]
        {
            &lt;span style="color:Blue"&gt;get&lt;/span&gt;
            {
                &lt;span style="color:Blue"&gt;int&lt;/span&gt; index = GetNodeIndex(node);
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (index == -1)
                {
                    &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; ArgumentOutOfRangeException(&lt;span style="color:#A31515"&gt;&amp;quot;node&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515"&gt;&amp;quot;Node \&amp;quot;&lt;/span&gt;&lt;span style="color:#A31515"&gt;&amp;quot; + node.CloneNode(false).OuterHtml + &amp;quot;&lt;/span&gt;\&lt;span style="color:#A31515"&gt;&amp;quot; was not found in the collection&amp;quot;&lt;/span&gt;);
                }
                &lt;span style="color:Blue"&gt;return&lt;/span&gt; index;
            }
           
        }
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; HtmlNode &lt;span style="color:Blue"&gt;this&lt;/span&gt;[&lt;span style="color:Blue"&gt;string&lt;/span&gt; name]
        {
            &lt;span style="color:Blue"&gt;get&lt;/span&gt;
            {
                &lt;span style="color:Blue"&gt;return&lt;/span&gt; items.SingleOrDefault(x=&amp;gt;x.Name.Equals(name.ToLower()));
            }
        }
      
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;int&lt;/span&gt; IndexOf(HtmlNode item)
        {
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; items.IndexOf(item);
        }

 
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;bool&lt;/span&gt; Contains(HtmlNode item)
        {
           &lt;span style="color:Blue"&gt;return&lt;/span&gt; items.Contains(item);
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; CopyTo(HtmlNode[] array, &lt;span style="color:Blue"&gt;int&lt;/span&gt; arrayIndex)
        {
            items.CopyTo(array, arrayIndex);
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;bool&lt;/span&gt; IsReadOnly
        {
            &lt;span style="color:Blue"&gt;get&lt;/span&gt; { &lt;span style="color:Blue"&gt;return&lt;/span&gt; &lt;span style="color:Blue"&gt;false&lt;/span&gt;; }
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;bool&lt;/span&gt; Remove(HtmlNode item)
        {
            &lt;span style="color:Blue"&gt;int&lt;/span&gt; i = items.IndexOf(item);
             RemoveAt(i);
             &lt;span style="color:Blue"&gt;return&lt;/span&gt; &lt;span style="color:Blue"&gt;true&lt;/span&gt;;
        }
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;bool&lt;/span&gt; Remove(&lt;span style="color:Blue"&gt;int&lt;/span&gt; i)
        {
            RemoveAt(i);
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; &lt;span style="color:Blue"&gt;true&lt;/span&gt;;
        }
        IEnumerator&amp;lt;HtmlNode&amp;gt; IEnumerable&amp;lt;HtmlNode&amp;gt;.GetEnumerator()
        {
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; items.GetEnumerator();
        }


        IEnumerator IEnumerable.GetEnumerator()
        {
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; items.GetEnumerator();
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; HtmlNode FindFirst(&lt;span style="color:Blue"&gt;string&lt;/span&gt; name)
        {
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; FindFirst(&lt;span style="color:Blue"&gt;this&lt;/span&gt;, name);
        }

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;static&lt;/span&gt; HtmlNode FindFirst(HtmlNodeCollection items, &lt;span style="color:Blue"&gt;string&lt;/span&gt; name)
        {
            &lt;span style="color:Blue"&gt;foreach&lt;/span&gt; (var node &lt;span style="color:Blue"&gt;in&lt;/span&gt; items)
            {
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node.Name.ToLower().Contains(name))
                    &lt;span style="color:Blue"&gt;return&lt;/span&gt; node;
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node.HasChildNodes)
                {
                    var returnNode = FindFirst(node.ChildNodes, name);
                    &lt;span style="color:Blue"&gt;if&lt;/span&gt; (returnNode != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
                        &lt;span style="color:Blue"&gt;return&lt;/span&gt; returnNode;
                }
            }
            &lt;span style="color:Blue"&gt;return&lt;/span&gt; &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
        }

    }

}

&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>DarthObiwan</author><pubDate>Mon, 29 Jun 2009 20:42:45 GMT</pubDate><guid isPermaLink="false">New Post: Selecting a specific bolded text 20090629084245P</guid></item><item><title>New Post: Selecting a specific bolded text</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60963</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I'm getting errors on HasChildNodes, ChildNodes, and the call to the Descendant method.&amp;nbsp; Any help on how to solve these errors would be greatly appreciated.&lt;br&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;  &lt;span style="color:Blue"&gt;public&lt;/span&gt; IEnumerable&amp;lt;HtmlNode&amp;gt; Descendants()
        {
            List&amp;lt;HtmlNode&amp;gt; list = &lt;span style="color:Blue"&gt;new&lt;/span&gt; List&amp;lt;HtmlNode&amp;gt;();

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (HasChildNodes)
                list.AddRange(ChildNodes);

            &lt;span style="color:Blue"&gt;foreach&lt;/span&gt; (HtmlNode node &lt;span style="color:Blue"&gt;in&lt;/span&gt; ChildNodes)
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node.HasChildNodes)
                    list.AddRange(node.Descendants());

            &lt;span style="color:Blue"&gt;return&lt;/span&gt; list;
        }

&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>rcrosenb</author><pubDate>Mon, 29 Jun 2009 20:34:21 GMT</pubDate><guid isPermaLink="false">New Post: Selecting a specific bolded text 20090629083421P</guid></item><item><title>New Post: Selecting a specific bolded text</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60963</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;list would be&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;IEnumerable&amp;lt;HtmlNode&amp;gt; list = document.DocumentNode.Descendants();
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;That is doing a LINQ statement to grab every node where tag name is b, skip the first 2 and then grab the next three. You'll need to be compiling in .NET 3.5 and have included System.Linq.&lt;/p&gt;
&lt;p&gt;Below is basically what that one line does&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;int&lt;/span&gt; count = 0;
List&amp;lt;HtmlNode&amp;gt; boldTags = &lt;span style="color:Blue"&gt;new&lt;/span&gt; List&amp;lt;HtmlNode&amp;gt;
&lt;span style="color:Blue"&gt;foreach&lt;/span&gt;(HtmlNode node &lt;span style="color:Blue"&gt;in&lt;/span&gt; list)
{
   &lt;span style="color:Blue"&gt;if&lt;/span&gt;(node.Name.Equals(&lt;span style="color:#A31515"&gt;&amp;quot;b&amp;quot;&lt;/span&gt;))
   {
      count++;
      &lt;span style="color:Blue"&gt;if&lt;/span&gt;(count&amp;gt;6)
        &lt;span style="color:Blue"&gt;break&lt;/span&gt;;
 
      &lt;span style="color:Blue"&gt;if&lt;/span&gt;(count&amp;gt;=3 &amp;amp;&amp;amp; count&amp;lt;=6)
        boldTags.Add(node);
      
   }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>DarthObiwan</author><pubDate>Mon, 29 Jun 2009 20:00:19 GMT</pubDate><guid isPermaLink="false">New Post: Selecting a specific bolded text 20090629080019P</guid></item><item><title>New Post: Selecting a specific bolded text</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60963</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I'm sorry to bother you Darth, but I'm a beginner at the whole HTML Agility Pack thing.&amp;nbsp; I was wondering if you could be a little more specific on how to do the second step of your explanation.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;After that do a list.Where(x=&amp;gt;x.Name.Equals(&amp;quot;b&amp;quot;)).Skip(2).Take(3); (note code may not be exact but damn close).&amp;quot;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;/div&gt;</description><author>rcrosenb</author><pubDate>Mon, 29 Jun 2009 19:49:58 GMT</pubDate><guid isPermaLink="false">New Post: Selecting a specific bolded text 20090629074958P</guid></item><item><title>New Post: removing string formatting </title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60980</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;That worked beautifully sir.&amp;nbsp; Thanks for the help.&lt;/p&gt;&lt;/div&gt;</description><author>rcrosenb</author><pubDate>Mon, 29 Jun 2009 19:36:48 GMT</pubDate><guid isPermaLink="false">New Post: removing string formatting  20090629073648P</guid></item><item><title>New Post: removing string formatting </title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60980</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;var unformated = node.InnerText.Replace(Environment.Newline,&amp;quot; &amp;quot;);&lt;/p&gt;
&lt;p&gt;This will remove all \n\r combinations in the string. To do them individually just chain the replace node.InnerText.Replace(&amp;quot;\n&amp;quot;,&amp;quot; &amp;quot;).Replace(&amp;quot;\r&amp;quot;,&amp;quot; &amp;quot;); This will give you double spaces where they were together.&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;var unformated = node.InnerText.Replace(Environment.Newline,&lt;span style="color:#A31515"&gt;&amp;quot; &amp;quot;&lt;/span&gt;).Replace(&lt;span style="color:#A31515"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;,&lt;span style="color:#A31515"&gt;&amp;quot; &amp;quot;&lt;/span&gt;).Replace(&lt;span style="color:#A31515"&gt;&amp;quot;\r&amp;quot;&lt;/span&gt;,&lt;span style="color:#A31515"&gt;&amp;quot; &amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;/div&gt;
Note: this is not the most performant way to do it, if you are processing lots of text (1meg+) it will be slow.&lt;/p&gt;
&lt;p&gt;If you are resaving it and HTML Agility Pack is adding the newlines back in, then it is probably making a new #text node for each one and you'll need to modify the save routine.&lt;/p&gt;&lt;/div&gt;</description><author>DarthObiwan</author><pubDate>Mon, 29 Jun 2009 19:19:49 GMT</pubDate><guid isPermaLink="false">New Post: removing string formatting  20090629071949P</guid></item><item><title>New Post: removing string formatting </title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60980</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I'm trying to figure out how to remove the &amp;quot;\n&amp;quot; and &amp;quot;\r&amp;quot; characters in a string that is pulled off a web page.&amp;nbsp; I would greatly appreciate any help on this matter.&lt;/p&gt;&lt;/div&gt;</description><author>rcrosenb</author><pubDate>Mon, 29 Jun 2009 18:46:54 GMT</pubDate><guid isPermaLink="false">New Post: removing string formatting  20090629064654P</guid></item><item><title>New Post: Where is FormsProcessor / AddOns </title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60967</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I'm new to the HTML agility pack and I'm looking for a way to use the it with HTML pages that contain forms. I have found a couple mentions of an add on library that has a FormsProcessor (&lt;span&gt;HtmlAgilityPack.AddOns.FormProcessor)&lt;/span&gt; but I haven't been able to find it anywhere. Can someone point me in the right direction?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Don&lt;/p&gt;&lt;/div&gt;</description><author>DonMcNamara</author><pubDate>Mon, 29 Jun 2009 16:23:54 GMT</pubDate><guid isPermaLink="false">New Post: Where is FormsProcessor / AddOns  20090629042354P</guid></item><item><title>New Post: Selecting a specific bolded text</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60963</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;build a normalized list of all the nodes (recursive foreach building a List&amp;lt;HtmlNode&amp;gt;)&lt;/p&gt;
&lt;p&gt;After that do a list.Where(x=&amp;gt;x.Name.Equals(&amp;quot;b&amp;quot;)).Skip(2).Take(3); (note code may not be exact but damn close).&lt;/p&gt;
&lt;p&gt;Or if you're interested in performance over maintainability you can keep track of the bold tags as you find them while recursing over the nodes.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;If the text is bold via CSS then there isn't a way to do it without writing a CSS rendering engine. If strong and b are being used then you'll have to run a few queries.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The normalizing of the list will be a bit difficult in the current version of Html Agility Pack. Here's the code I use after I converted the HtmlCollection to implement IList&amp;lt;T&amp;gt; . This is a method on the HtmlNode object&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;        &lt;span style="color:Blue"&gt;public&lt;/span&gt; IEnumerable&amp;lt;HtmlNode&amp;gt; Descendants()
        {
            List&amp;lt;HtmlNode&amp;gt; list = &lt;span style="color:Blue"&gt;new&lt;/span&gt; List&amp;lt;HtmlNode&amp;gt;();

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (HasChildNodes)
                list.AddRange(ChildNodes);

            &lt;span style="color:Blue"&gt;foreach&lt;/span&gt; (HtmlNode node &lt;span style="color:Blue"&gt;in&lt;/span&gt; ChildNodes)
                &lt;span style="color:Blue"&gt;if&lt;/span&gt; (node.HasChildNodes)
                    list.AddRange(node.Descendants());

            &lt;span style="color:Blue"&gt;return&lt;/span&gt; list;
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>Darthobiwan</author><pubDate>Mon, 29 Jun 2009 15:50:45 GMT</pubDate><guid isPermaLink="false">New Post: Selecting a specific bolded text 20090629035045P</guid></item><item><title>New Post: Selecting a specific bolded text</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60963</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I have an application which I want to read a HTML page and store the third, fourth, and fifth occurrences of&amp;nbsp; bolded text in a string. &amp;nbsp; Does anyone have a good idea how to do this?&lt;/p&gt;&lt;/div&gt;</description><author>rcrosenb</author><pubDate>Mon, 29 Jun 2009 15:35:09 GMT</pubDate><guid isPermaLink="false">New Post: Selecting a specific bolded text 20090629033509P</guid></item><item><title>New Post: Selecting Input elements</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=60830</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Maybe I'm still too novice to XPath to figure this out, but I'm having trouble.&amp;nbsp; Not sure if this is a bug or what.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have a webpage I want to parse through that has two forms on it.&amp;nbsp; I want to be able to use HtmlAgilityPack to select all the inputs, selects, etc for each form in my app.&lt;/p&gt;
&lt;p&gt;When I do SelectNodes(&amp;quot;//form[1]/input&amp;quot;) I get a null.&lt;/p&gt;
&lt;p&gt;Also, if I do SelectNodes(&amp;quot;//form[1]&amp;quot;) I get a Collection of my two forms.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Subsequently,&amp;nbsp; I commented out the Empty flag for the form element, but it didn't help.&lt;/p&gt;&lt;/div&gt;</description><author>lehel</author><pubDate>Sat, 27 Jun 2009 01:42:54 GMT</pubDate><guid isPermaLink="false">New Post: Selecting Input elements 20090627014254A</guid></item><item><title>New Post: parsing form tags</title><link>http://htmlagilitypack.codeplex.com/Thread/View.aspx?ThreadId=17922</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I have a question on this.&amp;nbsp; I'm wondering why the form nodes cannot contain the inputs as child nodes since the inputs are always going to be children, even if the form overlaps other html.&lt;/p&gt;
&lt;p&gt;I didn't understand by what was meant here:&lt;/p&gt;
&lt;p&gt;[QUOTE]  It will force the form to be closed properly.[/QUOTE] for parsing out the form element.&lt;/p&gt;
&lt;p&gt;My problem is that I want to process pages with more than one form and need to differentiate between inputs as to which form they belong to.&amp;nbsp; What is my best course of action?&lt;/p&gt;&lt;/div&gt;</description><author>lehel</author><pubDate>Fri, 26 Jun 2009 22:52:19 GMT</pubDate><guid isPermaLink="false">New Post: parsing form tags 20090626105219P</guid></item><item><title>Commented Issue: Odd series of '--' produce not well-formed xml output</title><link>http://htmlagilitypack.codeplex.com/WorkItem/View.aspx?WorkItemId=16572</link><description>When input html contains comment with long odd series of minuses &amp;#39;-&amp;#39;, library produces not well-formed xml output.&lt;br /&gt;HTML fragment&amp;#58;&lt;br /&gt;&amp;#60;&amp;#33;--  Code for &amp;#58;bbc-----&amp;#62;&lt;br /&gt;Produced output&amp;#58;&lt;br /&gt;&amp;#60;&amp;#33;--   Code for &amp;#58;bbc - -- --&amp;#62;&lt;br /&gt;To fix it I changed HtmlNode.GetXmlComment&amp;#40;&amp;#41; function body&amp;#58;&lt;br /&gt;string s &amp;#61; comment.Comment.Substring&amp;#40;4, s.Length-7&amp;#41;&amp;#59;&lt;br /&gt;while&amp;#40;s.Contains&amp;#40;&amp;#34;--&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;    s &amp;#61; s.Replace&amp;#40;&amp;#34;--&amp;#34;, &amp;#34; - -&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;return s&amp;#59;&lt;br /&gt;Comments: ** Comment from web user: justingrant ** &lt;p&gt;Unfortunately, the W3C XML spec says that double-dashes in XML comments are not allowed. See http&amp;#58;&amp;#47;&amp;#47;social.msdn.microsoft.com&amp;#47;forums&amp;#47;en-US&amp;#47;xmlandnetfx&amp;#47;thread&amp;#47;4593258d-7445-4dcc-ad24-72cc5c3b530f&amp;#47; for more info. &lt;/p&gt;&lt;p&gt;So there&amp;#39;s not much that the HtmlAgilityPack can do to fix this- instead of changing the HTML library, you probably want to change the underlying source HTML instead. &lt;/p&gt;</description><author>justingrant</author><pubDate>Wed, 24 Jun 2009 14:33:05 GMT</pubDate><guid isPermaLink="false">Commented Issue: Odd series of '--' produce not well-formed xml output 20090624023305P</guid></item><item><title>Reviewed: 1.3.0.0 Production (giu 24, 2009)</title><link>http://htmlagilitypack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=272</link><description>Rated 5 Stars &amp;#40;out of 5&amp;#41; - Excellent work&amp;#33; Great man, very very good</description><author>GiorgioGatta</author><pubDate>Wed, 24 Jun 2009 14:15:20 GMT</pubDate><guid isPermaLink="false">Reviewed: 1.3.0.0 Production (giu 24, 2009) 20090624021520P</guid></item></channel></rss>