Subject: RE: SubString Issue! From: "Mabry, F. DR EECS" <df6954@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 22 Jun 2000 14:26:02 -0400 |
For the following XML (note I made a change to the source) <test> <CreditCard><Highlight>9999-9999-9999-9999</Highlight></CreditCard> <Name>Jennifer <Highlight>Anniston</Highlight></Name> <Date.of.Birth>10-06-1969</Date.of.Birth> </test> use the following transform: <?xml version="1.0"?> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:saxon="http://icl.com/saxon" extension-element-prefixes="saxon"> <xsl:template match="CreditCard"> <xsl:variable name="mask"><xsl:text>XXXX</xsl:text></xsl:variable> <Text> <xsl:value-of select="substring(//CreditCard/Highlight/text(), 1, 15)"/> <xsl:value-of select="$mask"/> </Text> </xsl:template> </xsl:transform> This will get the desired result (I believe). Note: template has a "match" attribute instead of name attribute. The expression how references a "findable" result in the XML source node set. Frank Dr. Frank Mabry Dept. of EE&CS, U.S. Military Academy West Point, NY 10996 email: df6954@xxxxxxxxxxxxxxx Phone: (845) 938-2960 -----Original Message----- From: Chowdhury, Anisuzzaman [mailto:Anisuzzaman.Chowdhury@xxxxxxxxxxxxx] Sent: Thursday, June 22, 2000 12:17 PM To: 'XSL-List@xxxxxxxxxxxxxxxx' Subject: 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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: SubString Issue!, Warren Hedley | Thread | RE: SubString Issue!, Linda van den Brink |
RE: Saxon Frustrations, Kay Michael | Date | RE: passing a parameter to select a, Kay Michael |
Month |