[xsl] following-sibling problem

Subject: [xsl] following-sibling problem
From: Andy Carr1 <CARRA@xxxxxxxxxx>
Date: Wed, 6 Jun 2007 13:14:24 +0100
I have some source xml that looks like this:

<References>
        <Reference>Something</Reference>
        <Reference>Something Else</Reference>
        <ReferenceReasonText>Reason for Something 
Else</ReferenceReasonText>
        <Reference>Another reference</Reference>
<References>

I'm applying a template match on References

<xsl:apply-templates select="References" />

and

<xsl:template match="References/Reference">

        <!-- I've set up a test variable to determine if the 
following-sibling is a <ReferenceReasonText> -->
        <xsl:variable name="test">
                <xsl:choose>
                        <xsl:when 
test="following-sibling::ReferenceReasonText[1]">
                                <xsl:text>True</xsl:text>
                        </xsl:when>
                        <xsl:otherwise>
                                <xsl:text>False</xsl:text>
                        </xsl:otherwise>
                </xsl:choose>
        </xsl:variable>

</xsl:template>

The value of the test variable returns the following after transformation:

<References>
        <Reference>Something</Reference>        VARIABLE = TRUE
        <Reference>Something Else</Reference> VARIABLE = TRUE
        <ReferenceReasonText>Reason for Something 
Else</ReferenceReasonText>
        <Reference>Another reference</Reference>        VARIABLE = FALSE
<References>

For the first instance of Reference I would expect the variable to be 
False, what am I doing wrong ... anyone?

I've used following-sibling::xxxxx[1] before and got the results I 
expected. The only difference that I can see is that this XSLT (v2.0) is 
wrapped up in some FO using XEP 4.3 to produce PDF.


Regards
Andy

Andy Carr
Senior IT Specialist
Tel: Internal - 298037 External - 01252 558037
Mail Point  M1C IBM Application Services
Meudon House, Meudon Avenue, Farnborough, GU14 7NB
(Notes) Andy Carr1/UK/IBM@IBMGB 
(Internet)CARRA@xxxxxxxxxx






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Current Thread