|
In the following code, I tried to use my
DummyEntityResolver, so it won't check for the existence of the DTD file for the
incoming XML. However, it does not work. It always tries to resolve
the DTD file. What is wrong with this code?
Thanks,
Yueming
// Setup reusable templates
TransformerFactory tFactory =TransformerFactory.newInstance();
Templates template1 = tFactory.newTemplates(new StreamSource(stylesheet1));
Templates template2 = tFactory.newTemplates(new StreamSource(stylesheet2));
// Set up to read the input file
SAXParserFactory spf =
SAXParserFactory.newInstance();
spf.setNamespaceAware( true );
spf.setValidating( false );
SAXParser parser = spf.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setEntityResolver(new
DummyEntityResolver());
// Set up the output stream
StreamResult result = new
StreamResult("result.txt");
// Set up the input stream
BufferedInputStream bis =
new BufferedInputStream(new
FileInputStream(datafile));
SAXTransformerFactory stf = (SAXTransformerFactory) tFactory;
XMLFilter filter1 =
stf.newXMLFilter(template1);
XMLFilter filter2 =
stf.newXMLFilter(template2);
filter1.setParent(reader);
filter2.setParent(filter1);
Transformer transformer =
stf.newTransformer();
SAXSource transformSource = new
SAXSource(filter2, new InputSource(bis));
transformer.transform(transformSource,
result);
|
