xsl-list
[Top] [All Lists]

RE: Splitting multiple node occurrences into separate xmls

2005-04-29 01:20:24

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>
--~--



<Prev in Thread] Current Thread [Next in Thread>