Atif,
The LINQ support is basically getting HAP updated to use generic collections instead of array lists and implementing IEnumerator. So now all the System.Linq extension methods are available.The new 1.4.0 Beta 2 has this.
I've also added a bunch of functions like Descendants, Elements modeled off of LINQ to XML. All these methods are basically yield returns to maintain compatibility with .NET 2.0. But with these functions and the update on the collections it is now easier to write LINQ queries against the node tree. Though it's not as compact as using XPATH, xpath is just a pain to use sometimes. I did add a new property that will expose the direct XPATH to a node or attribute.
As for the form element and the configuring the parsing engine all around I do agree it needs to be more elegant. I've been mulling over a couple possible solutions. While yes you can pass in the configuration as a HASH table now it is unintuitive and ugly. I'd be more inclined to make it a bit more strongly typed and maybe add a fluent interface. Like
Parser.Tags.Add("form").CanOverLap().IsClosed();
Also possibly adding in xml config (or app.config) support.
I also think it might be useful and possible to use the DocType declarations and load defaults based on that.
I'm curious on what you think would be easier for handling the configuration of the parsing settings. I am probably going to change the default settings to include the most common complaints and questions. Since we are further down the road in HTML since HAP was originally written, adhering to HTML 3.2 is less of an issue.
--
Jeff Klawiter
http://nerdery.com/people/jktagn...@gmail.comMCPD: Web, MCTS: Windows