Class XSLTransformer
java.lang.Object
org.jdom2.transform.XSLTransformer
A convenience class to handle simple transformations. The JAXP TrAX classes
have more bells and whistles and can be used with
JDOMSource and
JDOMResult 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.
XSLTransformer transformer = new XSLTransformer("file.xsl");
Document x2 = transformer.transform(x); // x is a Document
Document y2 = transformer.transform(y); // y is a Document
JDOM relies on TrAX to perform the transformation.
The 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 abstract
javax.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=
classnameoption to the java interpreter - The class named in the
lib/jaxp.propertiesproperties 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.TransformerFactoryfile 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
-
Constructor Summary
ConstructorsConstructorDescriptionXSLTransformer(File stylesheet) This will create a newXSLTransformerby reading the stylesheet from the specifiedFile.XSLTransformer(InputStream stylesheet) This will create a newXSLTransformerby reading the stylesheet from the specifiedInputStream.XSLTransformer(Reader stylesheet) This will create a newXSLTransformerby reading the stylesheet from the specifiedReader.XSLTransformer(String stylesheetSystemId) Creates a transformer for a given stylesheet system id.XSLTransformer(Document stylesheet) This will create a newXSLTransformerby reading the stylesheet from the specifiedDocument. -
Method Summary
Modifier and TypeMethodDescriptionReturns the custom JDOMFactory used to build the transformation result.voidsetFactory(JDOMFactory factory) Sets a custom JDOMFactory to use when building the transformation result.Transforms the given input nodes to a list of output nodes.Transforms the given document to an output document.transform(Document inputDoc, EntityResolver resolver) Transforms the given document to an output document.
-
Constructor Details
-
XSLTransformer
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
This will create a new
XSLTransformerby reading the stylesheet from the specifiedInputStream.- Parameters:
stylesheet-InputStreamfrom which the stylesheet is read.- Throws:
XSLTransformException- when an IOException, format error, or something else prevents the stylesheet from being compiled
-
XSLTransformer
This will create a new
XSLTransformerby reading the stylesheet from the specifiedReader.- Parameters:
stylesheet-Readerfrom which the stylesheet is read.- Throws:
XSLTransformException- when an IOException, format error, or something else prevents the stylesheet from being compiled
-
XSLTransformer
This will create a new
XSLTransformerby reading the stylesheet from the specifiedFile.- Parameters:
stylesheet-Filefrom which the stylesheet is read.- Throws:
XSLTransformException- when an IOException, format error, or something else prevents the stylesheet from being compiled
-
XSLTransformer
This will create a new
XSLTransformerby reading the stylesheet from the specifiedDocument.- Parameters:
stylesheet-Documentcontaining the stylesheet.- Throws:
XSLTransformException- when the suppliedDocumentis not syntactically correct XSLT
-
-
Method Details
-
transform
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
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
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
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 customJDOMFactoryto use ornullto use the default JDOM classes.- See Also:
-
getFactory
Returns the custom JDOMFactory used to build the transformation result.- Returns:
- the custom
JDOMFactoryused to build the transformation result ornullif the default JDOM classes are being used. - See Also:
-