public final class XSLTransform
extends Object
Serves as an interface to a TrAX aware XSLT processor such as Xalan
or Saxon. The following example shows how to apply an XSL
Transformation to a XOM document and get the transformation result
in the form of a XOM Nodes
object:
public static Nodes transform(Document in) throws XSLException, ParsingException, IOException { Builder builder = new Builder(); Document stylesheet = builder.build("mystylesheet.xsl"); XSLTransform transform = new XSLTransform(stylesheet); return transform.transform(in); }
XOM 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:
com.icl.saxon.TransformerFactoryImpl
net.sf.saxon.TransformerFactoryImpl
net.sf.saxon.ProfessionalTransformerFactory
net.sf.saxon.EnterpriseTransformerFactory
org.apache.xalan.processor.TransformerFactoryImpl
org.apache.xalan.xsltc.trax.TransformerFactoryImpl
jd.xml.xslt.trax.TransformerFactoryImpl
oracle.xml.jaxp.JXSAXTransformerFactory
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
This property can be set in all the usual ways a Java system property can be set. TrAX picks from them in this order:
System.setProperty("javax.xml.transform.TransformerFactory",
"classname")
lib/jaxp.properties
properties file in the JRE directory, in a line like this one:
javax.xml.transform.TransformerFactory=classname
META-INF/services/javax.xml.transform.TransformerFactory
file in the JAR archives available to the runtimeConstructor and Description |
---|
XSLTransform(Document stylesheet)
Creates a new
XSLTransform by
reading the stylesheet from the supplied document. |
XSLTransform(Document stylesheet,
NodeFactory factory)
Creates a new
XSLTransform by
reading the stylesheet from the supplied document. |
Modifier and Type | Method and Description |
---|---|
void | setParameter(String name,
Object value)
Supply a parameter to transformations performed by this object.
|
void | setParameter(String name,
String namespace,
Object value)
Supply a parameter to transformations performed by this object.
|
static Document | toDocument(Nodes nodes)
Builds a
Document object from a
Nodes object. |
String | toString()
Returns a string form of this
XSLTransform ,
suitable for debugging. |
Nodes | transform(Document in)
Creates a new
Nodes from the
input Document by applying this object's
stylesheet. |
Nodes | transform(Nodes in)
Creates a new
Nodes object from the
input Nodes object by applying this object's
stylesheet. |
public XSLTransform(Document stylesheet) throws XSLException
Creates a new XSLTransform
by
reading the stylesheet from the supplied document.
stylesheet
- document containing the stylesheetXSLException
- when the supplied document
is not syntactically correct XSLTpublic XSLTransform(Document stylesheet, NodeFactory factory) throws XSLException
Creates a new XSLTransform
by
reading the stylesheet from the supplied document.
The supplied factory will be used to create all nodes
in the result tree, so that a transform can create
instances of subclasses of the standard XOM classes.
Because an XSL transformation generates a list of nodes rather
than a document, the factory's startMakingDocument
and finishMakingDocument
methods are not called.
stylesheet
- document containing the stylesheetfactory
- the factory used to build nodes in the result treeXSLException
- when the supplied document
is not syntactically correct XSLTpublic Nodes transform(Document in) throws XSLException
Creates a new Nodes
from the
input Document
by applying this object's
stylesheet. The original Document
is not
changed.
in
- document to transformNodes
containing the result of the
transformationXSLException
- if the transformation fails, normally
due to an XSLT errorpublic void setParameter(String name, Object value)
Supply a parameter to transformations performed by this object.
The value is normally a Boolean
,
Double
, or String
. However, it may be
another type if the underlying XSLT processor supports that
type. Passing null for the value removes the parameter.
name
- the name of the parametervalue
- the value of the parameterpublic void setParameter(String name, String namespace, Object value)
Supply a parameter to transformations performed by this object.
The value is normally a Boolean
,
Double
, or String
. However, it may be
another type if the underlying XSLT processor supports that
type. Passing null for the value removes the parameter.
name
- the name of the parameternamespace
- the namespace URI of the parametervalue
- the value of the parameterpublic Nodes transform(Nodes in) throws XSLException
Creates a new Nodes
object from the
input Nodes
object by applying this object's
stylesheet. The original Nodes
object is not
changed.
in
- document to transformNodes
containing the result of
the transformationXSLException
- if the transformation fails, normally
due to an XSLT errorpublic static Document toDocument(Nodes nodes)
Builds a Document
object from a
Nodes
object. This is useful when the stylesheet
is known to produce a well-formed document with a single root
element. That is, the Node
returned contains
only comments, processing instructions, and exactly one
element. If the stylesheet produces anything else,
this method throws XMLException
.
nodes
- the nodes to be placed in the new documentXMLException
- if nodes
does not contain
exactly one element or if it contains any text nodes or
attributespublic String toString()
Returns a string form of this XSLTransform
,
suitable for debugging.
toString
in class Object
Copyright 2002-2023 Elliotte Rusty Harold
elharo@ibiblio.org