This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
How can i get the data between <state id="product"></state> with all the child node. I dont want to use the dom xpath.I want to utilise the SAX parser.
First you know how to get _all_ the data, whatever it means, using SAX parser, I suppose.
With that as the base, you impose conditions from within the method startElement() of the Content Handler... verifying  the qualified name being equal to "state", and that  there exists an attribute named "id" and that  the latter being of value "product". With all these conditions tested positive, you raise a flag or whatever and you start storing/displaying all the results in whatever format used in the way getting _all_ the data mentioned above with all methods including startElement() always checking the flag for the green light to store/display data.
And then, in the endElement() method you verify if the qname being "state" or not. If yes, reset the flag to stop storing/displaying data... If no, just leave the flag alone.
That is the general layout if not an oversimplified description.