Package org.jdom.transform
Class XSLTransformer
- java.lang.Object
-
- org.jdom.transform.XSLTransformer
-
public class XSLTransformer extends Object
A convenience class to handle simple transformations. The JAXP TrAX classes have more bells and whistles and can be used withJDOMSourceandJDOMResultfor 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 Documentjavax.xml.transform.TransformerFactoryJava system property determines which XSLT engine TrAX uses. Its value should be the fully qualified name of the implementation of the abstractjavax.xml.transform.TransformerFactoryclass. 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.
- Saxon 6.x:
-
-
Constructor Summary
Constructors Constructor Description XSLTransformer(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JDOMFactorygetFactory()Returns the custom JDOMFactory used to build the transformation result.voidsetFactory(JDOMFactory factory)Sets a custom JDOMFactory to use when building the transformation result.List<Content>transform(List<Content> inputNodes)Transforms the given input nodes to a list of output nodes.Documenttransform(Document inputDoc)Transforms the given document to an output document.Documenttransform(Document inputDoc, EntityResolver resolver)Transforms the given document to an output document.
-
-
-
Constructor Detail
-
XSLTransformer
public XSLTransformer(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(InputStream stylesheet) throws XSLTransformException
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
public XSLTransformer(Reader stylesheet) throws XSLTransformException
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
public XSLTransformer(File stylesheet) throws XSLTransformException
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
public XSLTransformer(Document stylesheet) throws XSLTransformException
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 Detail
-
transform
public List<Content> transform(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, 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 customJDOMFactoryto use ornullto 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
JDOMFactoryused to build the transformation result ornullif the default JDOM classes are being used. - See Also:
setFactory(org.jdom.JDOMFactory)
-
-