Split xml file with result document and javax.xml.transform.Transformer

xslt

Solution

`<xsl:result-document>` is in XSLT 2.0 javax.xml.transform does not support XSLT 2.0, so i'm under the impression that you're out of luck using built-in transformers.

Try using Saxon instead. Just add the jar file to your classpath and you're set.

There is also an error in your XSLT

 <xsl:result-document href="{$filename}" format="xml">

Should be

 <xsl:result-document href="{$filename}" method="xml">

To get the directory into your XSLT i'd use

Java

trans.setParameter("dir", "dirname");

XSL

<xsl:param name="dir"/>

Problem

I have a XSLT which will split large xml file into multiple xml file with the use of following xslt code. ``` <xsl:variable name="filename" select="resolve-uri(concat('splitfilesfolder/',position(),'.xml'))" /> <xsl:result-document href="{$filename}" format="xml"> <--XML file content ---> </xsl:result-document> ``` then i have used that XSLT in my code to split input XML file using javax.xml.transform.Transformer. ``` TransformerFactory tFactory = TransformerFactory.newInstance(); Source xslSource = new StreamSource(xsltfilepath); Transformer trans = tFactory.newTransformer(xslSource); trans.transform(new StreamSource(xmlFileName), new StreamResult(splitfilesfolder)); ``` Here i want to give same path for new Streamresult as it is in result document path how can i transform multiple xml file using result doucment and javax.xml.transform.Transform ?? Can anybody please give me a solution ? Thanks in advance.

Original source