blob: ab7b4705649ce9c79de15fc94ed455f7bb9d589f [file] [log] [blame]
Stuart McCullochbb014372012-06-07 21:57:32 +00001package aQute.libg.sax;
2
Stuart McCulloch2286f232012-06-15 13:27:53 +00003import javax.xml.parsers.*;
4import javax.xml.transform.*;
5import javax.xml.transform.sax.*;
Stuart McCullochbb014372012-06-07 21:57:32 +00006
Stuart McCulloch2286f232012-06-15 13:27:53 +00007import org.xml.sax.*;
Stuart McCullochbb014372012-06-07 21:57:32 +00008
9public class SAXUtil {
Stuart McCulloch2286f232012-06-15 13:27:53 +000010
Stuart McCullochbb014372012-06-07 21:57:32 +000011 public static XMLReader buildPipeline(Result output, ContentFilter... filters) throws Exception {
12 SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
13 TransformerHandler handler = factory.newTransformerHandler();
14 handler.setResult(output);
Stuart McCulloch2286f232012-06-15 13:27:53 +000015
Stuart McCullochbb014372012-06-07 21:57:32 +000016 ContentHandler last = handler;
Stuart McCulloch2286f232012-06-15 13:27:53 +000017 if (filters != null)
18 for (ContentFilter filter : filters) {
19 filter.setParent(last);
20 last = filter;
21 }
Stuart McCullochbb014372012-06-07 21:57:32 +000022 XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
23 reader.setContentHandler(last);
Stuart McCulloch2286f232012-06-15 13:27:53 +000024
Stuart McCullochbb014372012-06-07 21:57:32 +000025 return reader;
26 }
Stuart McCulloch2286f232012-06-15 13:27:53 +000027
Stuart McCullochbb014372012-06-07 21:57:32 +000028}