This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Problem to compare a value with a set of tag content Part II
- From: Xavier DAMAY <xsl dot list at netcourrier dot com>
- To: XSL-List at lists dot mulberrytech dot com
- Date: Thu, 30 May 2002 10:40:02 +0200
- Subject: Re: [xsl] Problem to compare a value with a set of tag content Part II
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello,
After more investigation i've got something but none of expected :
<xsl:for-each select="liste/annonce">
<xsl:variable name="en-pdf">
<xsl:for-each select="../compte/pdf">
<xsl:choose>
<xsl:when test=".=../../annonce/@id">
True
</xsl:when>
<xsl:otherwise>
<xsl:value-of select=".=../../annonce/@id"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:variable>
...
<xsl:value-of select="$en-pdf"/>
Now the when test is always false,
what i know is : values of pdf are 1 and 3
: values of annonce/@id are 0, 1, 2, 3, and 4
i made a test to see the value of annonce/@id inside of the pdf for-each
is always 00, (the first annonce/@id)
I am stuck and puzzled, please help !
Xavier
PS : for memory the structure is
<liste>
<compte>
<pdf>1</pdf>
<pdf>3</pdf>
</compte>
<annonce id ="1">
bla bla
</annonce>
<annonce id ="2">
bla bla
</annonce>
<annonce id ="3">
bla bla
</annonce>
<annonce id ="4">
bla bla
</annonce>
</liste>
David Carlisle wrote:
>>of tag content
>>
>
>the content of a tag is the stuff between < and >
>If you mean the stuff between <xxx> and </xxx> then that is the content
>of the xxx element not the content of a tag.
>
>
>>Question 1 : Are nested for-each statements allowed ?
>>
>
>yes
>
>But your example appears confused (so i can't tell what you want)
>
> <xsl:for-each select="annonce">
> so here the current node is an annonce.
> <xsl:variable name="en-pdf">
> <xsl:for-each select="compte/pdf">
> so here you are iterating over all pdf children of compute children of
> the current element but that is empty as the annonce element does not
> have any compte children. You could use /compte/pdf which would select
> something but there is no point in nesting such a for-each as it will
> re-evaluate the same thing each time for each item in the outer list.
>
>>Question 2 :
>>
>
>I think you just want something like
>
> <xsl:for-each select="annonce/id">
> <xsl:variable name="en-pdf" select=".=../../compte/pdf"/>
>
>which will iterate over the <id> and in each case $en-pdf will be
>true() or false()
>
>David
>
>
>_____________________________________________________________________
>This message has been checked for all known viruses by Star Internet
>delivered through the MessageLabs Virus Scanning Service. For further
>information visit http://www.star.net.uk/stats.asp or alternatively call
>Star Internet for details on the Virus Scanning Service.
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list