|
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 |