Subject: RE: [xsl] using xsl:if to test the value of a node From: Jarno.Elovirta@xxxxxxxxx Date: Thu, 5 Dec 2002 09:05:25 +0200 |
Hi, > I need to only transform ARTICLE nodes where the CODE node > value starts with > a "J" (or a "B"). > > My data looks like... > > <ARTICLE_LIST> > <ARTICLE Test="OK"> > <CODE>J107_SYD-LAX-JFK.102</CODE> > <PACKAGE>PK x 15</PACKAGE> > <LOADPORT>SYD QFCL</LOADPORT> > <ORDERED>6300</ORDERED> > <DELIVERED>0</DELIVERED> > <USED>0</USED> > <ONHAND>0</ONHAND> > <VIEWFILE>TRUE</VIEWFILE> > </ARTICLE> > > I am trying the following... > > <xsl:template match="/"> > <xsl:copy> > <xsl:apply-templates/> > </xsl:copy> > </xsl:template> > <xsl:template match="ARTICLE_LIST"> > <xsl:copy> > <xsl:apply-templates> change this to <xsl:apply-templates select="ARTICLE[starts-with(CODE, 'J') or starts-with(CODE, 'B')]" /> > <xsl:sort select="CODE"/> > <xsl:sort select="LOADPORT"/> > </xsl:apply-templates> > </xsl:copy> > </xsl:template> > <xsl:template match="ARTICLE"> > <xsl:if test="child::CODE[. $lt$ 'K' and . $gte$ 'J']"> > <xsl:copy> > <xsl:apply-templates/> > </xsl:copy> > </xsl:if> > </xsl:template> and this template to <xsl:template match="ARTICLE"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> That is, instead of selecting all ARTICLEs and filtering out all the unwanted ones, select only the wanted ARTICLEs in the first place. -- Jarno - Front Line Assembly: Body Count XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] using xsl:if to test the , Michael Kay | Thread | [xsl] How to give out XML-Tags?, Sorin Marti |
[xsl] using xsl:if to test the valu, Kevin Friend | Date | [xsl] How to give out XML-Tags?, Sorin Marti |
Month |