Subject: RE: [xsl] following-sibling problem From: "Vasu Chakkera" <vasucv@xxxxxxxxxxx> Date: Thu, 7 Jun 2007 12:33:36 +0530 |
The problem is in <xsl:when test="following-sibling::ReferenceReasonText[1]"> This is equivalent to testing if there is a ReferenceReasonText after the current node. What you need is to test if the next immediate node is a ReferenceReasonText So you need following-sibling::*[1][self::ReferenceReasonText] -----Original Message----- From: Andy Carr1 [mailto:CARRA@xxxxxxxxxx] Sent: Wednesday, June 06, 2007 5:44 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] following-sibling problem 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Regular expressions in XS, David Carlisle | Thread | [xsl] replacing special characters , Dunning, John |
Re: [xsl] Using one nodeset to dict, David Carlisle | Date | RE: [xsl] Relative URI Question, Michael Kay |
Month |