我想采用多个输入文件 (XML/HTML/XHTML) 和相应的 XSLT 来为相应的输入文件生成输出文件。如果只有一个输入 XML 文件和一个输入 XSLT 文件,那么我可以通过以下程序成功转换它。例如,在给定程序中,我的输入 (X)HTML 文件是 temp.html,输入 XSLT 是 temp.xsl,它产生的输出为 temp_copy.html。如果我有两个或多个输入文件 temp1.html 和 temp2.html 以及相应的 XSLT temp1.xsl 和 temp2.xsl,那么最好的方法是什么,那么如何使用相应的生成输出 temp1_copy.html 和 temp2_copy.html输入文件?感谢您!
我当前的 Java 代码:
public class SimpleXSLT {
public static void main(String[] args) {
String inXML = "C:/tmp/temp.html";
String inXSL = "C:/tmp/temp.xsl";
String outTXT = "C:/tmp/temp_copy.html";
SimpleXSLT st = new SimpleXSLT();
try {
st.transform(inXML,inXSL,outTXT);
} catch(TransformerConfigurationException e) {
System.err.println("Invalid factory configuration");
System.err.println(e);
} catch(TransformerException e) {
System.err.println("Error during transformation");
System.err.println(e);
}
}
public void transform(String inXML,String inXSL,String outTXT)
throws TransformerConfigurationException,
TransformerException {
TransformerFactory factory = TransformerFactory.newInstance();
StreamSource xslStream = new StreamSource(inXSL);
Transformer transformer = factory.newTransformer(xslStream);
transformer.setErrorListener(new MyErrorListener());
StreamSource in = new StreamSource(inXML);
StreamResult out = new StreamResult(outTXT);
transformer.transform(in,out);
System.out.println("The generated XML file is:" + outTXT);
}
}
class MyErrorListener implements ErrorListener {
public void warning(TransformerException e)
throws TransformerException {
show("Warning",e);
throw(e);
}
public void error(TransformerException e)
throws TransformerException {
show("Error",e);
throw(e);
}
public void fatalError(TransformerException e)
throws TransformerException {
show("Fatal Error",e);
throw(e);
}
private void show(String type,TransformerException e) {
System.out.println(type + ": " + e.getMessage());
if(e.getLocationAsString() != null)
System.out.println(e.getLocationAsString());
}
}