|
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 |