Subject: RE: [xsl] xsl formating string From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 5 Apr 2005 22:02:02 +0100 |
Your problem is: <xsl:when test="../format_control='C1'"/> ^ | that the xsl:when is an empty element. The fo:block is therefore a direct child of xsl:choose, which is not allowed. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: josh higgins [mailto:doopsterus@xxxxxxxxx] > Sent: 05 April 2005 20:49 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] xsl formating string > > am I not allowed to have fo blocks inside the when > blocks b/c it always yells at me and tells me that I > am not allowed to have a fo block in that section of > the code. > > > --- JBryant@xxxxxxxxx wrote: > > > <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> > > > === message truncated === > > > > > __________________________________ > 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, Jon Gorman |
Re: [xsl] xsl formating string, josh higgins | Date | RE: [xsl] Combining two node Sets i, Williamson, Chris |
Month |