从这个问题晴续:XSLT: CSV (or Flat File, or Plain Text) to XML撒克逊在Java中:XSLT的CSV到XML
所以,我有一个XSLT从这里:http://andrewjwelch.com/code/xslt/csv/csv-to-xml_v2.html
,并将其转换为CSV文件到XML文档。
在命令行上的以下命令一起使用时它这样做是Java的罐子saxon9he.jar -xsl:CSV到xml.csv - 它:主-o:的Output.xml
所以现在问题变成:我该如何在Java代码中执行此操作?
现在我有代码看起来像这样:(该Transformer
是net.sf.saxon.Controller
一个实例)
TransformerFactory transformerFactory = TransformerFactory.newInstance();
StreamSource xsltSource = new StreamSource(new File("location/of/csv-to-xml.xsl"));
Transformer transformer = transformerFactory.newTransformer(xsltSource);
StringWriter stringWriter = new StringWriter();
transformer.transform(documentSource, new StreamResult(stringWriter));
String transformedDocument = stringWriter.toString().trim();
在命令行上的诀窍是指定“ - 它:主“指向XSLT中的指定模板。这意味着您不必为源文件提供“-s”标志。
该问题从Java端再次启动。在哪里/如何指定这个“-it:main”?这样做会不会破坏其他不需要指定的XSLT?我是否必须在每个XSLT文件“main?”中命名每个模板?鉴于Transformer.transform()的方法签名,I 有来指定源文件,所以这并不能击败我在计算这个东西时所取得的所有进展吗?
编辑:我发现隐藏在saxon9he.jar中的s9api,如果有人正在寻找它。