Subject: Re: [xsl] xsl formating string From: JBryant@xxxxxxxxx Date: Tue, 5 Apr 2005 14:34:32 -0500 |
<span> is an HTML element. I didn't realize you were writing FO. <fo:inline> is the FO equivalent of <span>, more or less. In your case, you can put the styling information on the blocks, as you have done. To get this to work, you need to use a relative path identifier rather than the absolute path from the root. So, you need: <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="../format_control='C1'"/> <fo:block color="blue"> <xsl:value-of select="."/> </fo:block> </xsl:when> <xsl:when test="../format_control='U1'"/> <fo:block font-style="underline"> <xsl:value-of select="."/> </fo:block> </xsl:when> </xsl:choose> </xsl:template> You also had </xsl:choose> in place of the last </xsl:when>. Your XML parser should have complained about that. Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) josh higgins <doopsterus@xxxxxxxxx> 04/05/2005 02:12 PM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc Subject Re: [xsl] xsl formating string 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> </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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl formating string, josh higgins | Thread | Re: [xsl] xsl formating string, josh higgins |
Re: [xsl] Something similar to mana, Wendell Piez | Date | Re: [xsl] xsl formating string, josh higgins |
Month |