List of usage examples for org.xml.sax.helpers XMLFilterImpl XMLFilterImpl
public XMLFilterImpl()
From source file:Main.java
private static void transformInternal(final URIResolver xslResolver, final StreamSource xml, final InputSource xsl, final Map<String, Object> parameters, final StreamResult result) throws IOException, ParserConfigurationException, SAXException, TransformerConfigurationException, TransformerException {/*from w ww. j a v a 2 s .com*/ final TransformerFactory tfactory = TransformerFactory.newInstance(); tfactory.setURIResolver(xslResolver); // Does this factory support SAX features? if (tfactory.getFeature(SAXSource.FEATURE)) { // if so, we can safely cast final SAXTransformerFactory stfactory = ((SAXTransformerFactory) tfactory); // create a Templates ContentHandler to handle parsing of the // stylesheet final javax.xml.transform.sax.TemplatesHandler templatesHandler = stfactory.newTemplatesHandler(); templatesHandler.setDocumentLocator(emptyDocumentLocator); final XMLFilter filter = new XMLFilterImpl(); filter.setParent(makeXMLReader()); filter.setContentHandler(templatesHandler); // parse the stylesheet templatesHandler.setSystemId(xsl.getSystemId()); filter.parse(xsl); // set xslt parameters final Transformer autobot = templatesHandler.getTemplates().newTransformer(); if (parameters != null) { final Iterator<String> keys = parameters.keySet().iterator(); while (keys.hasNext()) { final String name = keys.next(); final Object value = parameters.get(name); autobot.setParameter(name, value); } } // set saxon parameters if (parameters != null) { final Iterator<String> keys = parameters.keySet().iterator(); while (keys.hasNext()) { String name = keys.next(); if (name.startsWith("saxon-")) { final String value = parameters.get(name).toString(); name = name.replaceFirst("saxon\\-", ""); autobot.setOutputProperty(name, value); } } } // do the transform // logger.debug("SAX resolving systemIDs relative to: " + // templatesHandler.getSystemId()); autobot.transform(xml, result); } else { throw new IllegalStateException("Factory doesn't implement SAXTransformerFactory"); } }