Subject: Re: [xsl] Splitting attributes From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Mon, 18 Nov 2002 11:58:06 -0500 |
<xsl:template match="Class"> <xsl:for-each select="id(@subtypes)"> ... </xsl:for-each> </xsl:template>
Cheers, Wendell
Endre Magyari wrote:In my source XML I have elements with IDREFS attributes, like: <Class subtypes="id1 id23 id56 id34"> My desire is to generate an element for each idref in part.(Split the attribute to idrefs) Any idea how to do this? I haven't seen any splitting functions in the XPATH documentation. Mostly, I would like an <xsl:for-each>-like behaviour to iterate on the set of the strings resulted from splitting the attribute value.
You can make use substring-before($value, ' ') function recursively to get tokens. I'd better use standard templates either from exslt[1] or fxsl[2] libraries, but just to give you idea, here is a sample template:
<xsl:template match="Class">
<xsl:call-template name="tokenize">
<xsl:with-param name="str" select="normalize-space(@subtypes)"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="str"/>
<xsl:if test="string-length($str) > 0">
<token>
<xsl:choose>
<xsl:when test="contains($str, ' ')">
<xsl:value-of select="substring-before($str, ' ')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</token>
<xsl:call-template name="tokenize">
<xsl:with-param name="str" select="normalize-space(substring-after($str, ' '))"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
[1] http://www.exslt.org/str/functions/tokenize/index.html [2] http://www.topxml.com/xsl/articles/dice/#res3 -- Oleg Tkachenko eXperanto team Multiconn Technologies, Israel
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Splitting attributes, Oleg Tkachenko | Thread | Re: [xsl] [FO]: pagination question, daniele . falloni |
[xsl] Applying text nodes: 2 proces, sguazt | Date | Re: [xsl] variable declaration, David Carlisle |
Month |