[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Strings Position
Hi Bruno, I may not have understood what you meant by shifting the string position by position. But here's a way of associating each character with its position. If this is way wrong, please let me know, and I'll try to better understand. This XML: <p Zahlen='00643cam 022002291 04500' /> When processed with this XSL: <xsl:template match="p"> <xsl:variable name="shorter"> <xsl:value-of select="substring-after(@Zahlen,substring(@Zahlen,1,1))" /> </xsl:variable> <P number="{@Zahlen}"> <xsl:element name="{concat('shift',string-length(@Zahlen))}"> <xsl:value-of select="substring(@Zahlen,1,1)"/> </xsl:element> <xsl:call-template name="short"> <xsl:with-param name="shortened" select="substring-after(@Zahlen,substring(@Zahlen,1,1))" /> </xsl:call-template> </P> </xsl:template> <xsl:template name="short"> <xsl:param name="shortened" /> <xsl:variable name="shorter"> <xsl:value-of select="substring-after($shortened,substring($shortened,1,1))" /> </xsl:variable> <xsl:element name="{concat('shift',string-length($shorter)+1)}"> <xsl:value-of select="substring($shortened,1,1)"/> </xsl:element> <xsl:if test="string-length($shorter) > 0"> <xsl:call-template name="short"> <xsl:with-param name="shortened" select="substring-after($shortened,substring($shortened,1,1))" /> </xsl:call-template> </xsl:if> </xsl:template> Gives you this result: <P number="00643cam 022002291 04500"> <shift24>0</shift24> <shift23>0</shift23> <shift22>6</shift22> <shift21>4</shift21> <shift20>3</shift20> <shift19>c</shift19> <shift18>a</shift18> <shift17>m</shift17> <shift16> </shift16> <shift15>0</shift15> <shift14>2</shift14> <shift13>2</shift13> <shift12>0</shift12> <shift11>0</shift11> <shift10>2</shift10> <shift9>2</shift9> <shift8>9</shift8> <shift7>1</shift7> <shift6> </shift6> <shift5>0</shift5> <shift4>4</shift4> <shift3>5</shift3> <shift2>0</shift2> <shift1>0</shift1> </P> Good luck, Bryan -----Original Message----- From: Bruno LLopes [mailto:brunollopes@xxxxxxx] Sent: Tuesday, November 25, 2003 1:33 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Strings Position Hi, I have a string for exemple '00643cam 022002291 04500' and I need look at every position of the string a see if each element has the correct value... How can I shift the string position by position? use xslt... thanks XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list 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
|