Re: [xsl] xsl formating string

Subject: Re: [xsl] xsl formating string
From: Brian Chrisman <incubus@xxxxxxxxxxxxxx>
Date: Tue, 5 Apr 2005 12:55:41 -0700
On Tue, Apr 05, 2005 at 12:12:44PM -0700, josh higgins wrote:
> Ok, I have come up with the following code but it does
> not like it.  Does not like the fo:block in the
> choose.  I tried to add the <span> </span> block but
> it didn't like that either.  Said it was no allowed
> there.  Ideas?
> 
> 
> 
> <xsl:template name="detail">
> 	<xsl:for-each select="/invoice/detail/row">
> 		<fo:block font-size="8pt" >
> 			<xsl:apply-templates select="transaction_detail"/>
> <xsl:value-of select="amount"/>
> 		</fo:block>
> 	</xsl:for-each> 
> </xsl:template>
> 
> <xsl:template match="transaction_detail">
> 	<xsl:choose>
> 		<xsl:when
> test="/invoice/detail/row/format_control='C1'"/>
> 			<fo:block color="blue">
> 				<xsl:value-of select="."/>
> 			</fo:block>
> 		</xsl:when>
> 		<xsl:when
> test="/invoice/detail/row/format_control='U1'"/>
> 			<fo:block font-style="underline">
> 				<xsl:value-of select="."/>
> 			</fo:block>
> 		</xsl:choose>

this should be </xsl:when>

your stylesheet should be getting rejected as invalid XML...

> 	</xsl:choose>
> </xsl:template>
> 
> 
> 
> --- JBryant@xxxxxxxxx wrote:
> 
> > Ah, so. In that case:
> > 
> > <xsl:template match="transaction_detail">
> >   <xsl:choose>
> >     <xsl:when test="../format_control='C1'">
> >       <!-- Apply the C1 format -->
> >     </xsl:when>
> >     <xsl:when test="../format_control='.0'">
> >       <!-- Apply the .0 format -->
> >     </xsl:when>
> >     <!-- and so on -->
> >   </xsl:choose>
> > </xsl:template>
> > 
> > Jay Bryant
> > Bryant Communication Services
> > (presently consulting at Synergistic Solution
> > Technologies)
> > 
> > 
> > 
> > 
> > josh higgins <doopsterus@xxxxxxxxx> 
> > 04/05/2005 01:44 PM
> > Please respond to
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > 
> > 
> > To
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > cc
> > 
> > Subject
> > Re: [xsl] xsl formating string
> > 
> > 
> > 
> > 
> > 
> > 
> > Sorry my xml is not like that... Here is a sample of
> > my xml
> > 
> > <row>
> >  <line_sequence>3</line_sequence>
> >                                                 
> > <transaction_detail> 
> > Transaction
> > Activity</transaction_detail>
> >  <format_control>C1</format_control>
> >                                                 
> > <group_no>1</group_no>
> >                                  </row>
> > 
> > format_control determines the format of
> > transaction_detail
> > 
> > 
> > --- JBryant@xxxxxxxxx wrote:
> > > Hi, Josh,
> > > 
> > > For the sake of this dicussion, I assume that the
> > > strings are contained in 
> > > elements and that the elements have format
> > > attributes, thus:
> > > <someElement format="C1">Some String</someElement>
> > > 
> > > In that case, you can do this:
> > > <xsl:template match="someElement">
> > >   <xsl:choose>
> > >     <xsl:when test="@format='C1'">
> > >       <span style="color:#0000FF"><xsl:value-of
> > > select="."/></span>
> > >     </xsl:when>
> > >     <xsl:when test="@format='.0'">
> > >       <xsl:value-of select="concat(., '.0')"/>
> > >     </xsl:when>
> > >     <xsl:when test="somethingElse">
> > >       And so on...
> > >     </xsl:when>
> > >     <xsl:otherwise>
> > >       <xsl:message>Ruh Roh! No
> > format!</xsl:message>
> > >     </xsl:otherwise>
> > > </xsl:choose>
> > > </xsl:template>
> > > 
> > > If the source document contains the strings and
> > > format values in some 
> > > other structure, you'll have to adjust, but I hope
> > > you get the idea. If 
> > > you can't figure it out, post a sample of your
> > > source document's 
> > > structure.
> > > 
> > > Jay Bryant
> > > Bryant Communication Services
> > > (presently consulting at Synergistic Solution
> > > Technologies)
> > > 
> > > 
> > > 
> > > 
> > > josh higgins <doopsterus@xxxxxxxxx> 
> > > 04/05/2005 01:06 PM
> > > Please respond to
> > > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > 
> > > 
> > > To
> > > xsl <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> > > cc
> > > 
> > > Subject
> > > [xsl] xsl formating string
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > I have a xml file that I has strings in it.  I
> > want
> > > to
> > > do so sort of if logic that says if it is "C1"
> > > format
> > > with blue text if it is "U1" format it with
> > > underline.
> > >  Then if it is "0" I want to concatenate a .0 on
> > the
> > > end of that how can that be done?  How can I do
> > > these
> > > things.  I know that I will probably use an xsl:if
> > 
> > > but I am not sure what the snytax is with
> > comparing
> > > strings.  Can someone give me a sample code of how
> > > this would be done? Thanks!
> > > 
> > > Josh
> > > 
> > > __________________________________________________
> > > Do You Yahoo!?
> > > Tired of spam?  Yahoo! Mail has the best spam
> > > protection around 
> > > http://mail.yahoo.com 
> > > 
> > > 
> > 
> > 
> >  
> > __________________________________ 
> > Do you Yahoo!? 
> > Yahoo! Personals - Better first dates. More second
> > dates. 
> > http://personals.yahoo.com

Current Thread