Java代码的XML转换

Java代码的XML转换,java,xslt,Java,Xslt,我正在通过Java代码使用XSL转换XML文件。我也用过同样的教程。现在的问题是,输出文件已创建,但其中没有内容。我还添加了代码片段。请检查并告诉我我遗漏了什么: TransformerFactory factory = TransformerFactory.newInstance(); System.out.println("In transform"); File temp = new File(xslFile); if(temp.exists()){

我正在通过Java代码使用XSL转换XML文件。我也用过同样的教程。现在的问题是,输出文件已创建,但其中没有内容。我还添加了代码片段。请检查并告诉我我遗漏了什么:

    TransformerFactory factory = TransformerFactory.newInstance();
    System.out.println("In transform");
    File temp = new File(xslFile);
    if(temp.exists()){
        System.out.println("File found");
    }
    StreamSource xsl = new StreamSource(temp); 
    Transformer transformer = factory.newTransformer(xsl);


    temp = new File(xmlFile);
    if(temp.exists()){
        System.out.println("Found Again!!");
    }
    StreamSource xml = new StreamSource(temp);

    temp = new File(outputFile);
    if(temp.createNewFile()){
        System.out.println("New File Created");
    }
    StreamResult output = new StreamResult(temp);

    transformer.transform(xml, output);

这里,xslFile、xmlFile和outputFile是字符串,并作为参数传递给方法。

尝试声明三个不同的变量,每个文件一个。代码看起来会更清晰,您很可能会避免一些意外行为,因为您不知道Transformer如何使用这三个引用。

这里的outputFile是一个HTML文件。您的Java代码看起来不错。问题可能在于样式表本身。您能提供输入XML和XSLT吗?实际上,问题是转换步骤花费的时间太长。i、 执行以下代码时:-transformer.transformxml,输出。但是,该代码工作正常,并创建具有所需内容的文件。但是,即使在XML解析过程中,我也遇到了一个类似的问题,因为它需要花费太长的时间来处理。我的系统本身并不慢,但是这个时间延迟可能有什么具体的原因吗?因为处理时间太长,我通常会终止程序并检查已经创建到当前工作目录中的文件的内容。当我发现内容是空的时,我怀疑代码。然而,这是正确的。非常感谢。我检查了时间,发现代码需要2分15秒才能使用1KB的XSL转换1KB的XML以生成1KB的html文件。现在,这是不可接受的我的系统与3 GB内存和3 GHz AMD处理器!那没关系。代码可能更干净,但它永远不会对执行产生影响,因为他每次在使用temp构造源或结果之前都会将一个新的文件实例分配给temp。