ho scritto una classe java che applica un foglio di stile xsl ad un documento xml.
per come l'ho scritto c'è bisogno di selezionare, attraverso JFileChooser, il foglio di stile.
ma, dato che è sempre lo stesso come posso fare in modo che lo applichi da sé?
mi hanno detto che dovrei scriverne il path all'interno di un file di testo, ma poi come configuro il codice?
vi posto quello che ho scritto al momento
codice:
import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class CssFileCreator {
private StreamSource xmlDat, xslSheet;
private StreamResult cssOutput;
CssFileCreator() throws Throwable {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("Open Data File");
chooser.setApproveButtonText("Open Data File");
chooser.addChoosableFileFilter (new FileNameExtensionFilter ("File XML", "xml"));
int returnDat = chooser.showOpenDialog(null);
if (returnDat == JFileChooser.APPROVE_OPTION) {
File data = chooser.getSelectedFile();
xmlDat = new StreamSource(new FileReader(data));
}
//QUESTO è IL FILE DI CUI PARLO
chooser.setDialogTitle("Open Xsl Table Stylesheet");
chooser.setApproveButtonText("Open Xsl Stylesheet");
chooser.addChoosableFileFilter (new FileNameExtensionFilter ("File XSL", "xsl"));
int returnS = chooser.showOpenDialog(null);
if (returnS == JFileChooser.APPROVE_OPTION) {
File xsl = chooser.getSelectedFile();
xslSheet = new StreamSource(new FileReader(xsl));
}
chooser.setDialogTitle("Save Css File");
chooser.setApproveButtonText("Save Css File");
chooser.addChoosableFileFilter (new FileNameExtensionFilter ("File RDF", "rdf"));
int returnCss = chooser.showSaveDialog(null);
if (returnCss == JFileChooser.APPROVE_OPTION) {
try{
File css = chooser.getSelectedFile();
css.createNewFile();
cssOutput = new StreamResult(new FileWriter(css));
}catch ( IOException e ){e.printStackTrace();}
}
}
void transform() throws Throwable{
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer(xslSheet);
transformer.transform(xmlDat, cssOutput);
}
public static void main(String[] args) throws Throwable{
CssFileCreator fileHTML = new CssFileCreator();
fileHTML.transform();
}
}