|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: format-number() for a phone number?
You don't need to go to java extensions to do this, you can do it within
XSLT. the following inserts - into strings of digits, you should be able
to modify it easily enough to insert () as well.
David
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
result-ns="">
<xsl:template match="ssn">
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="1"/>
<xsl:param name="left" expr="."/>
</xsl:call-template>
</xsl:template>
<xsl:template name="ssn-dash" >
<xsl:param-variable name="count"/>
<xsl:param-variable name="left"/>
<xsl:if test="($count=4) or ($count=6)">-</xsl:if>
<xsl:choose>
<xsl:when test="$count=6">
<xsl:value-of select="$left"/>
</xsl:when>
<xsl:when test="starts-with($left,'0')">
<xsl:text>0</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'0')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'1')">
<xsl:text>1</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'1')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'2')">
<xsl:text>2</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'2')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'3')">
<xsl:text>3</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'3')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'4')">
<xsl:text>4</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'4')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'5')">
<xsl:text>5</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'5')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'6')">
<xsl:text>6</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'6')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'7')">
<xsl:text>7</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'7')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'8')">
<xsl:text>8</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'8')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($left,'9')">
<xsl:text>9</xsl:text>
<xsl:call-template name="ssn-dash">
<xsl:param name="count" expr="$count+1"/>
<xsl:param name="left" expr="substring-after($left,'9')"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








