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]
Other format: [Raw text]

How to filter characters from a string?


Hi all,

   I'm practicing XSLT and decided to write my own Base 64 encoder and 
decoder templates.  The rules for Base 64 Encoding say that only the 
following characters (in an encoded file) should be examined upon decoding:
<xsl:variable name="base64Map" 
select="'ABCDEFGHIJKLMNOPQRSTUVWXYZabcedfghijklmnopqrstuvwxyz01234567890+/='"/>

   This means that I would like to filter out every character that is not 
one of the 65 above characters.  I realize that I could do this partially 
with translate(), but then I would need to specify every possible illegal 
character, of which there are thousands (if you have Unicode characters in 
there).  A smaller version of such a command would be
translate($encodedString,
           $base64Map,
           concat($base64Map,
                  '=&#xA;&#xD; 
`~!@#$%^&amp;*()-_)&quot;&apos;[]{}|\&lt;&gt;,.?;:'))

   Are there any templates or commands to delete any character from the 
first argument that DOESN'T appear in the second argument?  I'm using 
Microsoft XSLT engine MSXSL4.


Greg Faron
Integre Technical Publishing Co.



 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]