T - The type of the output of the Function (from String to T)public class TransformXML<T>
extends java.lang.Object
Function. See TransformXMLApplications for examples.
Implementation note: This is done using SAX2.| Modifier and Type | Class and Description |
|---|---|
static class |
TransformXML.NoEscapingSAXInterface<T>
This version of the SAXInterface doesn't escape the text produced
by the function.
|
static class |
TransformXML.SAXInterface<T> |
| Constructor and Description |
|---|
TransformXML() |
| Modifier and Type | Method and Description |
|---|---|
TransformXML.SAXInterface<T> |
buildSaxInterface() |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.File in)
Read XML from the specified file and write XML to stdout,
while transforming text appearing inside the specified XML
tags by applying the specified
. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.File in,
java.io.File out)
Read XML from the specified file and write XML to specified file,
while transforming text appearing inside the specified XML tags
by applying the specified
. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
org.xml.sax.InputSource in,
java.io.Writer w,
TransformXML.SAXInterface<T> saxInterface)
Read XML from input source and write XML to output writer,
while transforming text appearing inside the specified XML tags
by applying the specified
. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in)
Read XML from input stream and write XML to stdout, while
transforming text appearing inside the specified XML tags by
applying the specified
. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in,
java.io.OutputStream out)
Read XML from input stream and write XML to output stream,
while transforming text appearing inside the specified XML tags
by applying the specified
. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in,
java.io.Writer w)
Read XML from input stream and write XML to output stream,
while transforming text appearing inside the specified XML tags
by applying the specified
. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in,
java.io.Writer w,
TransformXML.SAXInterface<T> handler)
Calls the fully specified transformXML with an InputSource
constructed from
in. |
void |
transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.Reader in,
java.io.Writer w,
TransformXML.SAXInterface<T> handler)
Calls the fully specified transformXML with an InputSource
constructed from
in. |
public TransformXML.SAXInterface<T> buildSaxInterface()
public void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.File in)
Function. Note that the Function
you supply must be prepared to accept Strings as
input; if your Function doesn't handle
Strings, you need to write a wrapper for it that
does.tags - an array of Strings, each an XML tag
within which the transformation should be appliedfn - the Function to applyin - the File to read frompublic void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.File in,
java.io.File out)
Function.
Note that the Function you supply must be
prepared to accept Strings as input; if your
Function doesn't handle Strings, you
need to write a wrapper for it that does.tags - an array of Strings, each an XML tag
within which the transformation should be appliedfn - the Function to applyin - the File to read fromout - the File to write topublic void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in)
Function.
Note that the Function you supply must be
prepared to accept Strings as input; if your
Function doesn't handle Strings, you
need to write a wrapper for it that does.tags - an array of Strings, each an XML tag
within which the transformation should be appliedfn - the Function to applyin - the InputStream to read frompublic void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in,
java.io.OutputStream out)
Function.
Note that the Function you supply must be
prepared to accept Strings as input; if your
Function doesn't handle Strings, you
need to write a wrapper for it that does.tags - an array of Strings, each an XML tag
within which the transformation should be appliedfn - the Function to applyin - the InputStream to read fromout - the OutputStream to write topublic void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in,
java.io.Writer w)
Function.
Note that the Function you supply must be
prepared to accept Strings as input; if your
Function doesn't handle Strings, you
need to write a wrapper for it that does.
Implementation notes: The InputStream is assumed to already be buffered if useful, and we need a stream, so that the XML decoder can determine the correct character encoding of the XML file. The output is to a Writer, and the provided Writer should again be buffered if desirable. Internally, this Writer is wrapped as a PrintWriter.
tags - an array of Strings, each an XML entity
within which the transformation should be appliedfn - the Function to applyin - the InputStream to read fromw - the Writer to write topublic void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.InputStream in,
java.io.Writer w,
TransformXML.SAXInterface<T> handler)
in.public void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
java.io.Reader in,
java.io.Writer w,
TransformXML.SAXInterface<T> handler)
in.public void transformXML(java.lang.String[] tags,
java.util.function.Function<java.lang.String,T> fn,
org.xml.sax.InputSource in,
java.io.Writer w,
TransformXML.SAXInterface<T> saxInterface)
Function.
Note that the Function you supply must be
prepared to accept Strings as input; if your
Function doesn't handle Strings, you
need to write a wrapper for it that does.
Implementation notes: The InputSource is assumed to already
be buffered if useful, and we need a stream, so that the XML decoder
can determine the correct character encoding of the XML file.
TODO: does that mean there's a bug if you send it a Reader
instead of an InputStream? It seems to work with a Reader...
The output is to a Writer, and the provided Writer should again
be buffered if desirable. Internally, this Writer is wrapped as
a PrintWriter.
tags - an array of Strings, each an XML entity
within which the transformation should be appliedfn - the Function to applyin - the InputStream to read fromw - the Writer to write tosaxInterface - the sax handler you would like to use (default is SaxInterface, defined in this class, but you may define your own handler)