由于项目涉及到了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()方式来访问,路径分割符使用\,它将插件内部的资源转化成流。
浙公网安备 33010602011771号