<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>The Quest for HTMLParser</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link REL ="stylesheet" TYPE="text/css" HREF="../javadoc/stylesheet.css" TITLE="Style"> </head> <body> <h2><strong>The Quest for HTMLParser</strong></h2> <p>by <a href="../contributors.html#dhaval">Dhaval Udani</a><br> </p> <table width="75%" border="0"> <tr> <td><p>In 1984, Citicorp Overseas Software Limited(COSL) was created by Citibank to produce low cost software for its various banking operations. Citicorp Information Technologies India Ltd.(CITIL), now know ans i-Flex, was formed out of this company around 10 years back to service non-Citi clients. In 2001, COSL was merged with another arm of Citibank, India known as Global Support Unit(GSU) to form OrbiTech Solutions Ltd which in turn merged with Polaris Software Labs in 2002. With its expertise in the banking domain, OrbiTech undertook to develop a suite of banking products. However with several players in the market, it needed something innovative and fast. With an aim of increasing productivity, an initiative was started to develop tools, code generators and reusable components to be used within the organization. It is in this aspect that I got involved with HTMLParser.</p> <p>We were developing an MVC-based framework for performing static maintenance of information like bank accounts, customer records etc. To simplify development for users, we were asking our users to develop simple static HTML pages which we would convert to JSP pages capable of showing dynamic data. It is towards this goal that I required a tool which could parse HTML tags and allow me to play with them. I searched high and low for various options. One of them was the HTML DOM standard and APIs of W3C. However their inability to process JSP tags and inability to change the tags and reproduce them meant I had to discard it. Another implementation of the DOM standard was provided by NekoHTML. </p> <p>However it had similar problems and was too complex. These factors drew me to HTMLParser. Initially it was difficlt to understand but once I had written my first parsing routine, it was too easy. I especially love the easy manner in which scanners are registered and removed so that scanning is enabled or disabled for particular tags. This feature is absolutely fantastic. Having to search for tags which were not written in the original HTMLParser caused a slight flutter in my heart. However Somik encouraged me not to give up and write my own tag-scanner pairs.<br> <br> This was the toughest activity because it meant not only delving deep in the code but also the psyche behind the design. Somehow I got through the first one and then it just flowed. I have now written 5 tag-scanner pairs. Its just too simple once you get the hang of it. The constant ongoing development and effort at bug-fixing also meant that any bugs reported by me would be fixed and a release would be available soon.<br> <br> <a href="../contributors.html#dhaval"><em>Dhaval Udani</em></a><em> is a Senior Analyst at Orbitech Solutions Ltd. and a developer on the HTMLParser project. </em></p></td> </tr> </table> </body> </html>