Package org.jdom2.transform
Class XSLTransformer
- java.lang.Object
-
- org.jdom2.transform.XSLTransformer
-
public class XSLTransformer extends java.lang.Object
A convenience class to handle simple transformations. The JAXP TrAX classes have more bells and whistles and can be used withJDOMSource
andJDOMResult
for advanced uses. This class handles the common case and presents a simple interface. XSLTransformer is thread safe and may be used from multiple threads.
JDOM relies on TrAX to perform the transformation. TheXSLTransformer transformer = new XSLTransformer("file.xsl"); Document x2 = transformer.transform(x); // x is a Document Document y2 = transformer.transform(y); // y is a Document
javax.xml.transform.TransformerFactory
Java system property determines which XSLT engine TrAX uses. Its value should be the fully qualified name of the implementation of the abstractjavax.xml.transform.TransformerFactory
class. Values of this property for popular XSLT processors include:- Saxon 6.x:
com.icl.saxon.TransformerFactoryImpl
- Saxon 7.x:
net.sf.saxon.TransformerFactoryImpl
- Xalan:
org.apache.xalan.processor.TransformerFactoryImpl
- jd.xslt:
jd.xml.xslt.trax.TransformerFactoryImpl
- Oracle:
oracle.xml.jaxp.JXSAXTransformerFactory
This property can be set in all the usual ways a Java system property can be set. TrAX picks from them in this order:
- Invoking
System.setProperty( "javax.xml.transform.TransformerFactory", "
classname
") - The value specified at the command line using the
-Djavax.xml.transform.TransformerFactory=
classname
option to the java interpreter - The class named in the
lib/jaxp.properties
properties file in the JRE directory, in a line like this one:javax.xml.parsers.DocumentBuilderFactory=
classname
- The class named in the
META-INF/services/javax.xml.transform.TransformerFactory
file in the JAR archives available to the runtime - Finally, if all of the above options fail, a default implementation is chosen. In Sun's JDK 1.4, this is Xalan 2.2d10.
- Author:
- Jason Hunter, Elliotte Rusty Harold
- Saxon 6.x:
-
-
Constructor Summary
Constructors Constructor Description XSLTransformer(java.io.File stylesheet)
This will create a newXSLTransformer
by reading the stylesheet from the specifiedFile
.XSLTransformer(java.io.InputStream stylesheet)
This will create a newXSLTransformer
by reading the stylesheet from the specifiedInputStream
.XSLTransformer(java.io.Reader stylesheet)
This will create a newXSLTransformer
by reading the stylesheet from the specifiedReader
.XSLTransformer(java.lang.String stylesheetSystemId)
Creates a transformer for a given stylesheet system id.XSLTransformer(Document stylesheet)
This will create a newXSLTransformer
by reading the stylesheet from the specifiedDocument
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JDOMFactory
getFactory()
Returns the custom JDOMFactory used to build the transformation result.void
setFactory(JDOMFactory factory)
Sets a custom JDOMFactory to use when building the transformation result.java.util.List<Content>
transform(java.util.List<Content> inputNodes)
Transforms the given input nodes to a list of output nodes.Document
transform(Document inputDoc)
Transforms the given document to an output document.Document
transform(Document inputDoc, org.xml.sax.EntityResolver resolver)
Transforms the given document to an output document.
-
-
-
Constructor Detail
-
XSLTransformer
public XSLTransformer(java.lang.String stylesheetSystemId) throws XSLTransformException
Creates a transformer for a given stylesheet system id.- Parameters:
stylesheetSystemId
- source stylesheet as a Source object- Throws:
XSLTransformException
- if there's a problem in the TrAX back-end
-
XSLTransformer
public XSLTransformer(java.io.InputStream stylesheet) throws XSLTransformException
This will create a new
XSLTransformer
by reading the stylesheet from the specifiedInputStream
.- Parameters:
stylesheet
-InputStream
from which the stylesheet is read.- Throws:
XSLTransformException
- when an IOException, format error, or something else prevents the stylesheet from being compiled
-
XSLTransformer
public XSLTransformer(java.io.Reader stylesheet) throws XSLTransformException
This will create a new
XSLTransformer
by reading the stylesheet from the specifiedReader
.- Parameters:
stylesheet
-Reader
from which the stylesheet is read.- Throws:
XSLTransformException
- when an IOException, format error, or something else prevents the stylesheet from being compiled
-
XSLTransformer
public XSLTransformer(java.io.File stylesheet) throws XSLTransformException
This will create a new
XSLTransformer
by reading the stylesheet from the specifiedFile
.- Parameters:
stylesheet
-File
from which the stylesheet is read.- Throws:
XSLTransformException
- when an IOException, format error, or something else prevents the stylesheet from being compiled
-
XSLTransformer
public XSLTransformer(Document stylesheet) throws XSLTransformException
This will create a new
XSLTransformer
by reading the stylesheet from the specifiedDocument
.- Parameters:
stylesheet
-Document
containing the stylesheet.- Throws:
XSLTransformException
- when the suppliedDocument
is not syntactically correct XSLT
-
-
Method Detail
-
transform
public java.util.List<Content> transform(java.util.List<Content> inputNodes) throws XSLTransformException
Transforms the given input nodes to a list of output nodes.- Parameters:
inputNodes
- input nodes- Returns:
- transformed output nodes
- Throws:
XSLTransformException
- if there's a problem in the transformation
-
transform
public Document transform(Document inputDoc) throws XSLTransformException
Transforms the given document to an output document.- Parameters:
inputDoc
- input document- Returns:
- transformed output document
- Throws:
XSLTransformException
- if there's a problem in the transformation
-
transform
public Document transform(Document inputDoc, org.xml.sax.EntityResolver resolver) throws XSLTransformException
Transforms the given document to an output document.- Parameters:
inputDoc
- input documentresolver
- entity resolver for the input document- Returns:
- transformed output document
- Throws:
XSLTransformException
- if there's a problem in the transformation
-
setFactory
public void setFactory(JDOMFactory factory)
Sets a custom JDOMFactory to use when building the transformation result. Use a custom factory to build the tree with your own subclasses of the JDOM classes.- Parameters:
factory
- the customJDOMFactory
to use ornull
to use the default JDOM classes.- See Also:
getFactory()
-
getFactory
public JDOMFactory getFactory()
Returns the custom JDOMFactory used to build the transformation result.- Returns:
- the custom
JDOMFactory
used to build the transformation result ornull
if the default JDOM classes are being used. - See Also:
setFactory(org.jdom2.JDOMFactory)
-
-