可能的重复:
在 XML 上应用 XSLT v. 2
我有一个带有 XML 文件的目录结构。我有一个 XSLT 1.0,我将其应用于所有这些文件并为每个文件生成新的 XML 文件。我用 JAVA 写过代码。但我的问题是我无法将输出文件放在一个单独的输出文件夹中,该文件夹的结构与我从中获取输入 XML 文件的文件夹相同。例如,如果我有一个根目录 Home,其中包含两个文件夹 Folder1 和 Folder2。每个 Folder1 & Folder2 都有许多 XML 文件。因此,当我转换这些文件夹中存在的 XML 文件时,这样生成的输出文件应该放在具有相同结构的单独文件夹中。
这是Java代码:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class XMLwithXSLT {
public static void main(String[] args) throws FileNotFoundException,
TransformerConfigurationException, TransformerException {
File dir = new File("Input Directory Root Path Here");
listFilesInDirectory(dir);
}
public static void listFilesInDirectory(File dir) throws FileNotFoundException,
TransformerException {
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
if (f.isDirectory()) {
System.out.println(f.getName());
listFilesInDirectory(f);
} else {
System.out.println(f.getName());
OutputXml(f);
}
}
}
public static void OutputXml(File in) throws FileNotFoundException,
TransformerException{
TransformerFactory tFactory = TransformerFactory.newInstance();
Source xslDoc = new StreamSource("backup.xslt");
Source xmlDoc = new StreamSource(in.getPath()) ;
System.out.print(in.getName() + "/n");
String outputFileName = in.getName();
System.out.print(outputFileName );
OutputStream htmlFile;
htmlFile = new FileOutputStream(outputFileName);
Transformer transformer = tFactory.newTransformer(xslDoc);
transformer.transform(xmlDoc, new StreamResult(htmlFile));
}
}
那么任何人都可以帮助我如何指定生成的新文件的输出路径吗?另外我如何生成与输入相同目录格式的输出文件?