[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: processing text nodes one character at a time

Subject: Re: processing text nodes one character at a time
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Tue, 26 Sep 2006 22:38:11 +0530
gyldendals downloade free
Here is a XSLT 1.0 solution:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="text" />

<xsl:template match="/">
 <xsl:call-template name="TransformString">
   <xsl:with-param name="string" select="element" />
 </xsl:call-template>
</xsl:template>

<xsl:template name="TransformString">
 <xsl:param name="string" />

 <xsl:if test="string-length($string) &gt; 0">
   <xsl:text>x</xsl:text><xsl:value-of select="substring($string, 1, 1)" />
   <xsl:call-template name="TransformString">
     <xsl:with-param name="string" select="substring($string, 2)" />
   </xsl:call-template>
 </xsl:if>
</xsl:template>

</xsl:stylesheet>

This when applied to XML:

<?xml version="1.0" encoding="UTF-8"?>
<element>abcd</element>

Produces the wanted output:

xaxbxcxd

But as David showed, it's much simpler with XSLT 2.0.

On 9/26/06, Marie Bilde Rasmussen <mariebilderas@xxxxxxxxx> wrote:
I am transforming xml data into our type-setters proprietary data
format. I use XSLT 2.0 for the purpose. In special cases, I need to
process text nodes one character at a time: the string must be copied
to the output, but with a code (let's call it "x") inserted before
each character.

Thus, the input: <element>abcd</element>

should lead to the output: "xaxbxcxd"

I think I need some combination of a for-loop and a substring-function
that selects the characters one by one (or maybe this can be solved
using a regex). I just can't get it right... Any suggestions?

Marie Bilde Rasmussen,
Gyldendal Publishers, Dictionary Department
Copenhagen, Denmark


--
Regards,
Mukul Gandhi

http://gandhimukul.tripod.com

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.