Saxon in Java: XSLT für CSV zu XML

Meistens aus dieser Frage fortgesetzt:XSLT: CSV (oder Flat File oder Plain Text) in XML

Also, ich habe ein XSLT von hier:http://andrewjwelch.com/code/xslt/csv/csv-to-xml_v2.html

Und es konvertiert eine CSV-Datei in ein XML-Dokument. Dies geschieht mit dem folgenden Befehl in der Befehlszeile:

java -jar saxon9he.jar -xsl: csv-to-xml.csv -it: main -o: output.xml

Nun lautet die Frage:Wie mache ich das in meinem Java-Code?

Im Moment habe ich Code, der so aussieht:

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();

(DasTransformer ist eine Instanz vonnet.sf.saxon.Controller.)

Der Trick in der Befehlszeile besteht darin, "-it: main" anzugeben, um direkt auf die angegebene Vorlage im XSLT zu zeigen. Dies bedeutet, dass Sie die Quelldatei nicht mit dem Flag "-s" versehen müssen.

Das Problem beginnt erneut auf der Java-Seite. Wo / wie würde ich dieses "-it: main" angeben? Würde dies nicht dazu führen, dass andere XSLTs, für die das nicht angegeben ist, beschädigt werden? Müsste ich jede Vorlage in jeder XSLT-Datei "main" nennen? Angesichts der Methodensignatur von Transformer.transform (), Ihaben um die Quelldatei zu spezifizieren, kann das nicht alle Fortschritte zunichte machen, die ich gemacht habe, um diese Sache herauszufinden?

Bearbeiten: Ich habe das s9api in der saxon9he.jar gefunden, falls jemand danach sucht.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage