1 package net.sf.saxon.dom; 2 3 import net.sf.saxon.Transform; 4 import net.sf.saxon.trans.DynamicError; 5 import net.sf.saxon.trans.XPathException; 6 import org.xml.sax.InputSource ; 7 import org.xml.sax.SAXException ; 8 9 import javax.xml.parsers.DocumentBuilder ; 10 import javax.xml.parsers.DocumentBuilderFactory ; 11 import javax.xml.parsers.ParserConfigurationException ; 12 import javax.xml.transform.stream.StreamSource ; 13 import java.io.IOException ; 14 import java.util.ArrayList ; 15 import java.util.List ; 16 17 18 23 24 public class DOMTransform extends Transform { 25 26 public List preprocess(List sources) throws XPathException { 27 try { 28 ArrayList domSources = new ArrayList (sources.size()); 29 for (int i=0; i<sources.size(); i++) { 30 StreamSource src = (StreamSource )sources.get(i); 31 InputSource ins = new InputSource (src.getSystemId()); 32 33 36 System.setProperty("javax.xml.parser.DocumentBuilderFactory", 37 "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); 38 39 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 40 factory.setNamespaceAware(true); 41 DocumentBuilder builder = factory.newDocumentBuilder(); 42 org.w3c.dom.Document doc = builder.parse(ins); 43 DocumentWrapper dom = new DocumentWrapper(doc, src.getSystemId(), getConfiguration()); 44 domSources.add(dom); 45 } 46 return domSources; 47 } catch (ParserConfigurationException e) { 48 throw new DynamicError(e); 49 } catch (SAXException e) { 50 throw new DynamicError(e); 51 } catch (IOException e) { 52 throw new DynamicError(e); 53 } 54 } 55 56 public static void main(String [] args) { 57 new DOMTransform().doMain(args, "DOMTransform"); 58 } 59 } 60 | Popular Tags |