[Home] [By Thread] [By Date] [Recent Entries]
Interestingly, this question was asked about an hour ago on
LinkedIn. The poster of that question gave an explicit input and an
explicit output, so it was very easy to be able to answer.
She has a requirement for a comma separating the tokens, which is different than the original poster on this thread, but that is easily removed from the solution I posted to LinkedIn: t:\ftemp>type siddhi.xml <book>xxx, xxxxxx, xxxxxxxxxxx, <i>xxx</i></book> t:\ftemp>xslt2 siddhi.xml siddhi.xsl <?xml version="1.0" encoding="UTF-8"?><book><key>xxx</key>, <key>xxxxxx</key>, <key>xxxxxxxxxxx</key>, <key><i>xxx</i></key></book> t:\ftemp>type siddhi.xsl <?xml version="1.0" encoding="US-ASCII"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="book">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates mode="make-tokens"/>
</xsl:copy>
</xsl:template><!--tokenize and wrap any text node children-->
<xsl:template match="text()" mode="make-tokens">
<xsl:for-each select="tokenize(.,', ')[normalize-space()]">
<key><xsl:value-of select="."/></key>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:template><!--simply wrap any element children-->
<xsl:template match="*" mode="make-tokens">
<key>
<xsl:copy-of select="."/>
<xsl:if test="position()!=last()">, </xsl:if>
</key>
</xsl:template></xsl:stylesheet> t:\ftemp> At 2009-11-26 14:35 +0530, I wrote: At 2009-11-26 14:27 +0530, Joga Singh Rawat wrote:What _exactly_ do you want returned from "a, b, <i>c</i>, <b>d</i>"? If people do not tell us what they want, it is difficult (and a waste of volunteer time) to keep guessing what people are asking for. -- Vote for your XML training: http://www.CraneSoftwrights.com/m/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/m/ Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/m/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
|

Cart



