One alternative, instead of nesting the <xsl:analyze-string/>s, is to
place them inside of templates in different modes. Then you can apply
templates in the first mode, store the result in a variable, then apply
templates to that variable in the next mode, and so on.
For example:
<xsl:template match="text()" priority="1">
<xsl:variable name="step_1">
<xsl:apply-templates select="." mode="tag_regex1"/>
</xsl:variable>
<xsl:variable name="step_2">
<xsl:apply-templates select="$step_1" mode="tag_regex2"/>
</xsl:variable>
<xsl:variable name="step_3">
<xsl:apply-templates select="$step_2" mode="tag_regex3"/>
</xsl:variable>
<xsl:apply-templates select="$step_3" mode="tag_regex4"/>
</xsl:template>
<xsl:template match="text()" mode="tag_regex1" priority="1">
<xsl:analyze-string />
</xsl:template>
<xsl:template match="text()" mode="tag_regex2" priority="1">
<xsl:analyze-string />
</xsl:template>
And so on. You can of course adjust the match attributes to fit your
situation.
Hope this helps,
-James
-----
James Sulak
Electronic Publishing Developer
Jones McClure Publishing
-----Original Message-----
From: Kevin Bird
[mailto:kevin(_dot_)bird(_at_)matrixdigitaldata(_dot_)co(_dot_)uk]
Sent: Thursday, May 08, 2008 12:00 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Up Conversion - Best Practice
in which case you can (if you want) concatenate the regexp together
separated by | and just use one regexp and one xsl:analyze-string then
test inside the xsl:matching-substring which case you are in by
looking
which regex-group() are non empty.
Here is one of my regular expressions which is capturing 13 groups.
<xsl:analyze-string select="$input-file"
regex="<body><tab>(.*?)?<tab>(.*?)\(([a-z]+)\.([a-z]+)
\.([0-9]+) ex (.*?)<enr>(.*?)\)([0-9,
]+)?<tab>([0-9]+)<tab>([0-9]+)<tab>([0-9]+)<tab>
([0-9]+)<tab>([0-9]+)$">
So I probably don't want to concatenate all ten into one line!!
Any other suggestions?
Kind regards.
--
Kevin
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--