How to call XSL template from java code?

2019-02-10 17:39发布

问题:

How to call XSL template from java code ?

Please note that, I don't need to know how to transform xml docuemnt by XSL in Java.

What I need exactly is that, I have some XSLT document that contains a template that do something, ex:

<xsl:template match="/">
  <html>
  <body>
    <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <tr>
        <td>.</td>
        <td>.</td>
      </tr>
    </table>
  </body>
  </html>
</xsl:template>

Then I need that template to be called from java code. How to ??

Thanks All guyz, I did it, Please see : http://m-hewedy.blogspot.com/2009/12/how-to-call-xslt-template-from-your.html

回答1:

You can use the javax.xml.transformer.Transformer API for this.

Here's a basic kickoff example:

Source xmlInput = new StreamSource(new File("c:/path/to/input.xml"));
Source xsl = new StreamSource(new File("c:/path/to/file.xsl"));
Result xmlOutput = new StreamResult(new File("c:/path/to/output.xml"));

try {
    Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl);
    transformer.transform(xmlInput, xmlOutput);
} catch (TransformerException e) {
    // Handle.
}


回答2:

Here's some code for a simple XSL transform, along with some tips for using XSL in Java. And here's another example, complete with an example XML and XSL.



回答3:

Is your question that you have an XSLT which doesn't require an input document? Then just give the Transformer object some kind of minimal document:

transformer.transform(new StreamSource(new StringReader("<empty/>")), yourResult);



标签: java xslt