Subject: Re: [xsl] First Occurance Problem From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 24 Mar 2003 17:12:45 +0000 |
Hi Deepak, > I have the following template > > <agg1> > <agg2> <----Can repeat 1 to N times > <tag1></tag1> <----Both tag1 and tag2 can be empty > <tag2></tag2> > </agg2> > </agg1> > > Problem: > > I want to return a xml with the following template > > <agg1> > <agg2> <----Can occur only once > <tagx></tagx> <----tag1 will have the value from the first > populated occurance of tag1 in the source xml > </agg2> > </agg1> You can locate the value of the first populated occurrence of <tag1> with: (/agg1/agg2/tag1[string(.)])[1] The [string(.)] predicate tests whether the <tag1> element has a string value or not. The brackets ensure that the [1] predicate applies to the position of the <tag1> element within all the <tag1> elements in the document rather than just those found within a particular <agg2> element. You can therefore build your result as: <xsl:template match="agg1"> <agg1> <agg2> <tagx> <xsl:value-of select="(agg2/tag1[string(.)])[1]" /> </tagx> </agg2> </agg1> </xsl:template> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] First Occurance Problem, Deepak Rao | Thread | Re: [xsl] First Occurance Problem, David Carlisle |
[xsl] First Occurance Problem, Deepak Rao | Date | Re: [xsl] First Occurance Problem, David Carlisle |
Month |