Subject: Re: [xsl] processing multiple values in a single attribute From: "vasu chakkera" <vasucv@xxxxxxxxx> Date: Fri, 15 May 2009 23:34:47 +0100 (GMT Daylight Time) |
>>Of course, having a tokenize function would be loads easier if it's >>Available to you... Its important to first figure out if xslt 2 is available to him to start with :) -------Original Message------- From: Matthew L. Avizinis Date: 15/05/2009 23:29:50 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] processing multiple values in a single attribute I would add that you should use <xsl:choose> and have two <xsl:when> tests: <xsl:choose> <xsl:when test="not($string = '') and contains($string,' ')"> <statemanipulation> <variableref name="{substring-before($string,' ')}"/> <fault fault-code="{substring-before($string,' ')}" Fault-state="ok"/> </statemanipulation> <xsl:call-template name="do-tokens"> <xsl:with-param name="string" select="substring-after($string,' ')"/> </xsl:call-template> </xsl:when> <xsl:when test="not($string = '')"> <statemanipulation> <variableref name="{$string}"/> <fault fault-code="{$string}" fault-state="ok"/> </statemanipulation> </xsl:when> </xsl:choose> In order to ensure it grabs the last value of the string. Of course, having a tokenize function would be loads easier if it's Available to you... Peace, Matthew Avizinis Gleim Publications, Inc. (www.gleim.com) G. Ken Holman wrote: > > <xsl:template match="FAULT-REF"> > <xsl:call-template name="do-tokens"> > <xsl:with-param name="string" > select="concat(normalize-space(@FAULTS),' ')"/> > </xsl:call-template> > </xsl:template> > > <xsl:template name="do-tokens"> > <xsl:param name="string"/> > <xsl:if test="contains($string,' ')"> > <statemanipulation> > <variableref name="{substring-before($string,' ')}"/> > <fault fault-code="{substring-before($string,' ')}" > fault-state="ok"/> > </statemanipulation> > <xsl:call-template name="do-tokens"> > <xsl:with-param name="string" select="substring-after($string,' > ')"/> > </xsl:call-template> > </xsl:if> > </xsl:template> > > </xsl:stylesheet> > T:\ftemp>call xslt o.XML o.xsl > <?XML version="1.0" encoding="utf-8"?> > <statemanipulation> > <variableref name="PF01"/> > <fault fault-code="PF01" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF02"/> > <fault fault-code="PF02" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF03"/> > <fault fault-code="PF03" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF04"/> > <fault fault-code="PF04" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF05"/> > <fault fault-code="PF05" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF06"/> > <fault fault-code="PF06" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF07"/> > <fault fault-code="PF07" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF08"/> > <fault fault-code="PF08" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF09"/> > <fault fault-code="PF09" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF10"/> > <fault fault-code="PF10" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF11"/> > <fault fault-code="PF11" fault-state="ok"/> > </statemanipulation> > T:\ftemp>type o2.xsl > <?xml version="1.0" encoding="US-ASCII"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="2.0"> > > <xsl:output indent="yes"/> > > <xsl:template match="FAULT-REF"> > <xsl:for-each select="tokenize(normalize-space(@FAULTS),' ')"> > <statemanipulation> > <variableref name="{.}"/> > <fault fault-code="{.}" fault-state="ok"/> > </statemanipulation> > </xsl:for-each> > </xsl:template> > > </xsl:stylesheet> > T:\ftemp>call xslt2 o.xml o2.xsl > <?xml version="1.0" encoding="UTF-8"?> > <statemanipulation> > <variableref name="PF01"/> > <fault fault-code="PF01" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF02"/> > <fault fault-code="PF02" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF03"/> > <fault fault-code="PF03" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF04"/> > <fault fault-code="PF04" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF05"/> > <fault fault-code="PF05" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF06"/> > <fault fault-code="PF06" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF07"/> > <fault fault-code="PF07" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF08"/> > <fault fault-code="PF08" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF09"/> > <fault fault-code="PF09" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF10"/> > <fault fault-code="PF10" fault-state="ok"/> > </statemanipulation> > <statemanipulation> > <variableref name="PF11"/> > <fault fault-code="PF11" fault-state="ok"/> > </statemanipulation> > T:\ftemp>rem Done! > > > > -- > XSLT/XSL-FO/XQuery hands-on training - Los Angeles, USA 2009-06-08 > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ > 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/s/bc > Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] processing multiple value, Matthew L. Avizinis | Thread | Re: [xsl] processing multiple value, G. Ken Holman |
Re: [xsl] processing multiple value, vasu chakkera | Date | Re: [xsl] processing multiple value, G. Ken Holman |
Month |