package aQute.libg.sax; import javax.xml.parsers.SAXParserFactory; import javax.xml.transform.Result; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import org.xml.sax.ContentHandler; import org.xml.sax.XMLReader; public class SAXUtil { public static XMLReader buildPipeline(Result output, ContentFilter... filters) throws Exception { SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.setResult(output); ContentHandler last = handler; if (filters != null) for (ContentFilter filter : filters) { filter.setParent(last); last = filter; } XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); reader.setContentHandler(last); return reader; } }