【发布时间】:2014-07-02 18:54:38
【问题描述】:
我正在尝试将此命令行代码(它采用 .csv 文件并通过 xslt 文件转换为 xml 并且这有效)转换为 Java 代码: java -jar saxon9he.jar -xsl:"csv2xml.xslt" flatfile=input.csv -s:dummy.xml > output.txt
//使用 Saxon-HE 9.5 的 Java 代码: 公共静态无效transformFileUsingStyleSheet(字符串csvFile,字符串xslID) 抛出 TransformerException {
// Create a transform factory instance.
TransformerFactory tfactory = TransformerFactory.newInstance();
// Create a transformer for the stylesheet.
Transformer transformer =
tfactory.newTransformer(new StreamSource(xslID));
// Transform the source XML to System.out.
transformer.transform(new StreamSource(csvFile),
new StreamResult(new File("ConvertedCSV2XML.xml")));
}
但是我在调用上面的 java 方法时遇到了这个错误:SXXP0003:XML 解析器报告的错误:prolog 中不允许内容,如下所示:transformFileUsingStyleSheet("input.csv"," csv2xml.xslt.xslt");
【问题讨论】:
-
您要转换的文件必须是格式正确的 XML。我要做的是将 XSLT 文件本身作为输入(或仍然使用
dummy.xml)和 CSV 作为xsl:param。您可以使用unparsed-text()读取CSV 进行处理。 (这就是基于命令行似乎正在发生的事情。)