Re: Java and XML
On Sun, 4 Oct 2009, markspace wrote:
"Easiest to use" and "versatile" are opposite ends of a very long axis,
imo. The default "versatile" XML parser is probably JAXP and SAX.
import javax.xml.parsers.*;
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
XMLReader parser = saxParser.getXMLReader();
parser.setContenHandler( myContentHandler );
parser.parse( "myfile.xml" );
Out of interest, is there any reason not to write:
XMLReader parser = SAXParserFactory.newInstance().newSAXParser().getXMLReader()
? Do we need to have the factory and the saxParser around? Most of the
examples i've seen do exactly what you did (perhaps because, like any good
programmer, your control, C and V keys were involved in the above code),
but i don't see why. I also don't see why it's so convoluted to get a
parser, but i consider that beyond the wot of man.
However, is there any reason for Sun not to write a method like:
public void parse(InputSource input, ContentHandler handler) {
// possibly also taking an ErrorHandler!
XMLReader parser = SAXParserFactory.newInstance().newSAXParser().getXMLReader()
parser.setContenHandler(handler);
parser.parse(input);
}
And put that somewhere really visible in javax.xml?
tom
--
If the truth can be told so as to be understood, it will be believed.