[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
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) > 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. -- Regards, Mukul Gandhi http://gandhimukul.tripod.com
|
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
|