Я пытаюсь сделать универсальный метод, который принимает 2 параметра.Xml в качестве параметра String и путь к Xsl-файлу в качестве строкового параметра.
Метод должен возвращать строку с xsl, примененным к xml, но на самом деле он ничего не делает.
Я предполагаю, что эта строка неверна: Source source = new StreamSource (new ByteArrayInputStream (xml.getBytes ()));
Потому что, когда я пытался сохранить его на диск, он работал нормально - просто не когдавсе это в памяти.
private static String Convert(String xml, String xslFilename ) {
try {
// Create transformer factory
TransformerFactory factory = TransformerFactory.newInstance();
// Use the factory to create a template containing the xsl file
Templates template = factory.newTemplates(new StreamSource(
new FileInputStream(xslFilename)));
// Use the template to create a transformer
Transformer xformer = template.newTransformer();
// Prepare the input and output files
Source source = new StreamSource(new ByteArrayInputStream(xml.getBytes()));
ByteArrayOutputStream output = new ByteArrayOutputStream();
Result result = new StreamResult(output);
// Apply the xsl file to the source file and write the result to the output file
xformer.transform(source, result);
String formattedResult = output.toString();
return formattedResult;
} catch (FileNotFoundException e) {
} catch (TransformerConfigurationException e) {
// An error occurred in the XSL file
} catch (TransformerException e) {
// An error occurred while applying the XSL file
// Get location of error in input file
SourceLocator locator = e.getLocator();
int col = locator.getColumnNumber();
int line = locator.getLineNumber();
String publicId = locator.getPublicId();
String systemId = locator.getSystemId();
}
return "";
}
}