Subject: RE: [xsl] insert default node if it doesn't exist From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Tue, 10 Sep 2002 08:47:31 +0100 |
You need to handle this when processing the <a> element, not when processing its children, otherwise, as you point out, you will insert the default <c> element once for each child. <xsl:template match="a"> <xsl:apply-templates select="*"/> <xsl:if test="not(c)"><c>0</c></xsl:if> </xsl:template> Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Thomas Olausson > Sent: 10 September 2002 01:04 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] insert default node if it doesn't exist > > > I always have trouble with xslt when processing something once: > > Ia certain child doesn't exists, I'd like to insert a default value: > > Like the one below. The 2nd 'a' should after processing > include a <c>0</c> (since it doesn't have it). > > before: > <data> > <a> > <b>100</b> > <c>120</c> > </a> > <a> > <b>100</b> > <g>300</g> > </a> > </data> > after: > <data> > <a> > <b>100</b> > <c>120</c> > </a> > <a> > <b>100</b> > <g>300</g> > <c>0</c> > </a> > </data> > > > I've tried with this XSLT. Problem is that since the match > doesn't find <c> for the 2nd both for b and g, I'll get a <c> > for everyone of them. How can this be solved? > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml" version="1.0" encoding="UTF-8" > indent="yes"/> > > <xsl:template match="a/*"> > <xsl:copy> > <xsl:apply-templates > select="@*|node()"/> > </xsl:copy> > <xsl:if test="not(../c)"> > <c>0</c> > </xsl:if> > </xsl:template> > > <xsl:template match="@*|node()"> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > </xsl:stylesheet> > > /Thomas > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] insert default node if it doe, Thomas Olausson | Thread | RE: [xsl] insert default node if it, Jarno . Elovirta |
RE: [xsl] XSL transform escape ques, Michael Kay | Date | Re: [xsl] Building tables with XSLT, Carsten Klein |
Month |