|
Subject: Re: [xsl] need help outputing summary of head elements From: David Carlisle <davidc@xxxxxxxxx> Date: Mon, 19 Sep 2005 13:13:05 +0100 |
> <xsl:variable name="strRoman" as="xs:string">I. II.
> III. IV. V. VI. VII. VIII. IX. X. XI. XII. XIII. XIV.
> XV.</xsl:variable>
there's no need to make one big string and then have to keep checking
with contains and substring before, just make a list of strings
<xsl:variable name="strRoman" as="xs:string*" select="('I.', 'II.',
'III.', 'IV.', 'V.', 'VI.', 'VII.', 'VIII.', 'IX.', 'X.', 'XI.', 'XII.', 'XIII.', 'XIV.'
)"/>
or simpler,
<xsl:function name="num:roman" as="xs:string">
<xsl:param name="value" as="xs:integer"/>
<xsl:number value="$value" format="I."/>
</xsl:function>
<xsl:variable name="strRoman" as="xs:string*"
select="for $i in (1 to 19) return num:roman($i)"/>
It's difficult to follow the logic of your stylesheet without seeing the
input format, but from your descritption I think you just want something
like the following to seelct all the head eleemnts whose first word is a
roman numeral, then just test that position() != last() to insert the
separator.
<xsl:for-each select="$ParentInfo//div/head[substring-before(.,'')=$strRoman]">
do something with this head
<xsl:if test="position() != last()"> - </xsl:if>
</xsl:for-each>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] need help outputing summary o, UlyLee | Thread | Re: [xsl] need help outputing summa, UlyLee |
| [xsl] need help outputing summary o, UlyLee | Date | [xsl] system call?, TGolshan |
| Month |