我有一個用於轉換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