import org.w3c.dom.Document; //导入方法依赖的package包/类
@Override
public void process(ProcessingContext ctx, Corpus corpus) throws ModuleException {
try {
Logger logger = getLogger(ctx);
TransformerFactory factory = TransformerFactory.newInstance();
InputStream is = xslTransform.getInputStream();
Source transformerSource = new StreamSource(is);
Transformer transformer = factory.newTransformer(transformerSource);
is.close();
transformer.setErrorListener(new ListingErrorHandler());
libraryResolver = getLibraryResolver(ctx);
Evaluator roots = libraryResolver.resolveNullable(this.roots);
Evaluator fileName = this.fileName.resolveExpressions(libraryResolver);
EvaluationContext evalCtx = new EvaluationContext(logger);
for (Element root : Iterators.loop(getRoots(roots, evalCtx, corpus))) {
transformer.reset();
Document doc = XMLUtils.docBuilder.newDocument();
doc.setUserData(ELEMENT_USER_DATA, root, null);
//org.w3c.dom.Element elt = getElementProxy(doc, root);
//doc.appendChild(elt);
Source source = new DOMSource(doc);
String fileNameString = fileName.evaluateString(evalCtx, root);
// System.out.println("creating file: " + fileNameString);
File outFile = new File(outDir, fileNameString);
Result result = new StreamResult(outFile);
transformer.transform(source, result);
}
} catch (DOMException | TransformerException | IOException e) {
rethrow(e);
}
}