优化XSLT转换的最佳方法是什么?

时间:2012-09-17 15:21:04

标签: xml saxon xslt

我使用下面给出的代码进行XSLT转换。我使用输入和输出流进行此转换。这里xsltIn和xmlIn是输入流。

System.setProperty("javax.xml.transform.TransformerFactory","net.sf.saxon.TransformerFactoryImpl");

将撒克逊人设定为绑定。所以我的问题是优化处理的最佳方法是什么。我听说过一种叫做流媒体模板的东西。

javax.xml.transform.Result xmlResult = new javax.xml.transform.stax.StAXResult(XMLOutputFactory
    .newInstance().createXMLStreamWriter(new FileWriter(fileName)));javax.xml.transform.Source xsltSource = new javax.xml.transform.stream.StreamSource(xsltIn);
javax.xml.transform.Source source = new javax.xml.transform.stream.StreamSource(xmlIn);

javax.xml.transform.TransformerFactory transFact = javax.xml.transform.TransformerFactory
    .newInstance();
javax.xml.transform.Transformer trans = transFact.newTransformer(xsltSource);
trans.transform(source, xmlResult);

1 个答案:

答案 0 :(得分:2)

专注于测量。衡量绩效,评估影响绩效的因素(例如源文档大小),一旦了解了所获得的绩效,就可以开始考虑如何改进绩效。在源文档解析,样式表编译,转换,序列化方面花了多少端到端性能?如果您不知道,那么您需要找出答案。

了解你的目标。您需要什么样的性能以及目前还有多少性能?您准备投入多少精力/时间/金钱以达到所需的绩效?

您可以采取许多措施来提高效果。例如,您可以使用Saxon-EE来利用其改进的优化器和字节码生成。或者你可以买更快的硬件。或者您从XSLT专家那里购买咨询服务。从问题的制定方式来看,这些事情是否能给你带来良好的投资回报是不可能的。