This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How to substitute a string based on number
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] How to substitute a string based on number
- From: Johannes Döbler <jd at aztecrider dot com>
- Date: Mon, 29 Oct 2001 14:18:00 +0100
- References: <01cf01c16056$3144c910$07cb18ac@fns.int>
- Reply-To: xsl-list at lists dot mulberrytech dot com
msxml:node-set is a extension function and not a standard function. It
converts a result tree fragment into a nodeset. Different XSLT-processors
have different extension for this function, (if they need it at all).
A standard solution would be:
Create a file monthnames.xml:
--------------------------------------------
<monthnames>
<month>January</month>
<month>February</month>
<month>March</month>
<month>April</month>
<month>May</month>
<month>June</month>
<month>July</month>
<month>August</month>
<month>September</month>
<month>October</month>
<month>November</month>
<month>December</month>
</monthnames>
--------------------------------------------
and then your stylesheet could look like:
--------------------------------------------
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:variable name="monthnames"
select="document('monthnames.xml')/monthnames/month/text()"/>
<xsl:param name="month" select="1"/>
<xsl:template match="/">
<test>
<xsl:value-of select="$monthnames[$month]"/>
</test>
</xsl:template>
</xsl:stylesheet>
--------------------------------------------
Cheers,
Johannes
At 04:37 29.10.2001 -0800, you wrote:
>Hello All,
>
>How can I substitute a string based on a number, e.g.
>
>1 --- Jaunary
>2 --- February
>.....
>11 November
>12 --- December
>
>In wrox book an implementation is given but it seems
>to be MS specific. The implementation is
>
>-----------------
><xsl:variable name="monthnames.tf">
> <mnth name="January"/>
> <mnth name="February"/>
> <mnth name="March"/>
> <mnth name="April"/>
> <mnth name="May"/>
> <mnth name="June"/>
> <mnth name="July"/>
> <mnth name="August"/>
> <mnth name="September"/>
> <mnth name="October"/>
> <mnth name="November"/>
> <mnth name="December"/>
></xsl:variable>
>
><xsl:variable name="monthnames"
>select="msxml:node-set($monthnames.tf)"/>
>....
>...
><xsl:value-of select="$monthnames/*[$month]/@name"/>
>
>
>In this way monthnames variable works as an array.
>Is there such kinda standard way to access the
>variable ... do not mention xslt processor specific
>stuff. Is node-set a standard function?
>
>Any pointers may help.
>
>Thanks
>Deep
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list