This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

SubString Issue!


Part of the XML data:

<CreditCard><Highlight>9999-9999-9999-9999</Highlight></CreditCard>
<Name>Jennifer <Highlight>Anniston</Highlight></Name>
<Date.of.Birth>10-06-1969</Date.of.Birth>

I would like to replace all the "Highlight" tags with "B" and mask the last
four digits of the credit card number.

Here are the templates I've created:

To replace "Highlight" with "B":

<xsl:template match="Highlight">
<B><xsl:apply-templates/></B>
</xsl:template>

To apply mask:

<xsl:template name="CreditCard">
<xsl:variable name="mask"><xsl:text>XXXX</xsl:text></xsl:variable>
<Text>
<xsl:value-of select="substring(CreditCard/text(), 1, 15)"/><xsl:value-of
select="$mask"/>
</Text>
</xsl:template>

Whenever I try to run this stylesheet on eXcelon Stylus XSLT processor, I
get an error message saying "Out of bounds arguments to substring function".


Using SAX parser, I get the following output:
<Text>XXXX</Text>

The problem is, "Highlight" tag can be anywhere. Is there any way I can get
the following output:

<Text><B>9999-9999-9999-XXXX</B></Text>
........................................................................

I would highly appreciate your suggestions.

Thanks,
Anis Chowdhury


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]