由于项目涉及到了XML转换,所以采用XSLT这种最通用有效的方式来进行,编写好了XSLT文件之后,就需要用相关的程序载入XSLT来进行XML转换操作,本来使用的是Smooks,但是效率上并不能让人满意,而且对XML进行格式化也不方便。所以考虑了JDOM,进行调研以后,发现JDOM比Smooks要好上许多,不需要配置文件,而且lib文件也比较小,只有3M,并且可以在转换后对Document进行格式化,生成带有换行缩进的XML文件,完全满足了项目的所有要求。调用JDOM的代码如下:

SAXBuilder builder = new SAXBuilder();
Document docOut
= null;
try {
XSLTransformer xsltT
= new XSLTransformer(DeployEJBXMLPage.class.getResourceAsStream(tranXML));
Document docIn
= builder.build(new File(inputXML));
docOut
= xsltT.transform(docIn);
}
catch (Exception e) {
e.printStackTrace();
}

XMLOutputter xop
= new XMLOutputter();
Format format
= Format.getPrettyFormat();
format.setEncoding(
"UTF-8");
xop.setFormat(format);

FileWriter fw;
try {
fw
= new FileWriter(outputXML);
xop.output(docOut, fw);
fw.close();
}
catch (IOException e) {
e.printStackTrace();
}

需要注意的是,由于项目是插件开发,所以读取项目内部的文件不能使用传统的方式,而要通过class.getResourceAsStream()方式来访问,路径分割符使用\,它将插件内部的资源转化成流。