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.
subject: Extract data between two xml nodes with SAX Parser