Subject: Re: [xsl] When to use text()|
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Fri, 21 Mar 2014 16:29:56 +0000
On Fri, Mar 21, 2014 at 4:21 PM, David Carlisle <davidc@xxxxxxxxx> wrote: > On 21/03/2014 15:28, Ihe Onwuka wrote: >> >> You see an hour ago I wast quite content with my >> >> <xsl:template match="RentAmount | MonthlyAmounts"> <xsl:attribute >> name="class" select="'money'"/> <xsl:apply-templates/> >> </xsl:template> > > > > You shouldn't have been really as warnings about over-use of text() come > up fairly often:-) > > last time though the comments were dismissed with > >> This is why I don't like to post code, because all I really needed >> from this thread was confirmation that duplicate elimination only >> applied to node identity rather than content. > > You took me too literally. I am still content with it because it still works. > >> >> Meanwhile ...... if a comment node did infiltrate RentAmount/text() >> what effect wolud that have with the match pattern and how >> consistent would it be with the equivalent scenario outside a match >> pattern. > > > You apply > > > <xsl:template match="RentAmount/text() | MonthlyAmounts/text()"> > <xsl:value-of select="format-number(.,if (xs:decimal(.) > 999.99) > then '$,000.00' else '$0.00')"/> > </xsl:template> > > to each text node so if you have > > <RentAmount>12<!--3-->4</RentAmount> > > There are two text nodes so you will get > > $12.00$4.00 > > If you had instead had > > > <xsl:template match="RentAmount| MonthlyAmounts"> > <xsl:copy> > > <xsl:value-of select="format-number(.,if (xs:decimal(.) > 999.99) > then '$,000.00' else '$0.00')"/> > </xsl:copy> > </xsl:template> > > > Then you would get > > <RentAmount>124.00</RentAmount> > Perfect. If ever I am passed rental markup with embedded comments I'll know what to reference.