|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: insert default node if it doesn't exist
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: 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








