| |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
Objectnu.xom.xslt.XSLTransform
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:
public static Nodes transform(Document in)
throws XSLException, ParsingException, IOException {
Builder builder = new Builder();
Document stylesheet = builder.build("mystylesheet.xsl");
XSLTransform stylesheet = new XSLTransform(stylesheet);
return stylesheet.transform(doc);
}
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
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.parsers.DocumentBuilderFactory=classname
META-INF/services/javax.xml.transform.TransformerFactory
file in the JAR archives available to the runtime
| Constructor Summary | |
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. | |
| Method Summary | |
void | setNodeFactory(NodeFactory factory)
Deprecated. As of beta 5, replaced by XSLTransform(Document,NodeFactory) |
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. |
| Methods inherited from class Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public XSLTransform(Document stylesheet)
throws XSLException
Creates a new XSLTransform by
reading the stylesheet from the supplied document.
stylesheet - document containing the stylesheet
XSLException - when the supplied document
is not syntactically correct XSLT
public 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 tree
XSLException - when the supplied document
is not syntactically correct XSLT| Method Detail |
public 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 transform
Nodes containing the result of the
transformation
XSLException - if the transformation fails, normally
due to an XSLT error
public 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 transform
Nodes containing the result of
the transformation
XSLException - if the transformation fails, normally
due to an XSLT error
public void setNodeFactory(NodeFactory factory)
XSLTransform(Document,NodeFactory)
Sets the factory used to construct nodes in the output tree.
Passing null uses a
.
nu.xom.NodeFactory
Because an XSL transformation generates a list of nodes rather
than a document, the factory's startMakingDocument
and finishMakingDocument methods are not called.
factory - the node factory used to construct
nodes in the output tree
public 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 and no text or attribute nodes. If the stylesheet
produces anything else, an XMLException is thrown.
nodes - the nodes to be placed in the new document
XMLException - if nodes does not contain
exactly one element or if it contains any text nodes or
attributes
public String toString()
Returns a string form of this XSLTransform,
suitable for debugging.
| |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||