I need to do a transformation that will take an input xml
string in a format
that is something like
...<a>1</a><a>2</a><a>3</a><a>4</a>...
and apart from transforming it, will split the multiple node
occurrences for
"a" into different xml's i.e.
xml[1]=<a>1</a>
xml[2]=<a>2</a>...
XSLT 2.0 solution:
<xsl:template match="a">
<xsl:result-document href="file{position()}.xml">
<xsl:copy-of select="."/>
</xsl:result-document>
</xsl:template>
Some XSLT 1.0 processors have extensions that do similar things.
So here, I guess the multiple output xmls are created as
files.
Just because it has a URI doesn't mean it's a file! (though that is the
default, of course).
Is there
anyway that the xml's can instead be returned to the java
program that
called the transformation, so that the program does not have
to read them from disk?
This depends on the processor API. Saxon allows you to nominate an
OutputURIResolver which is called to process each result document as it is
written; for example it can supply a SAX ContentHandler which feeds the
output into another transformation.
Michael Kay
http://www.saxonica.com/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--