我有一个用于转换XML的简单代码,但它非常耗时(我不得不多次重复)。有没有人有建议如何优化此代码?谢谢。Java:需要帮助优化代码的一部分
编辑:这是一个新版本的代码。我不幸重新使用Transformer
,因为XSLTRule
是在大多数情况下不同。我现在正在重复使用TransformerFactory
。我之前没有阅读文件,所以我不能使用StreamSource
。最大的时间花在初始化Transformer
上。
private static TransformerFactory tFactory = TransformerFactory.newInstance();
public static String transform(String XML, String XSLTRule) throws TransformerException {
Source xmlInput = new StreamSource(new StringReader(XML));
Source xslInput = new StreamSource(new StringReader(XSLTRule));
Transformer transformer = tFactory.newTransformer(xslInput);
StringWriter resultWriter = new StringWriter();
Result result = new StreamResult(resultWriter);
transformer.transform(xmlInput, result);
return resultWriter.toString();
}
每次都有不同的XSL文件?如果没有,缓存变压器。另外,这个代码本身是否缓慢?你看到什么表现? – 2011-05-02 13:52:14
每次它是一个不同的XML,但XSLT重复自己(虽然有很多)。我正在使用一个分析器,它说这一堆时间花在了这个方法上。 – Ivan 2011-05-02 14:01:10
*此方法中的*在哪里?编译XSLT通常很慢,但如果这不是花时间的话......查看http://opensymphony.com/的OSCore,因为它有一些优化的XML实用程序,如果可以的话,它将缓存变换器。 – 2011-05-02 14:08:36