XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Mike KellySubject: XSL following-sibling, how to select / query just the next node
Author: Mike Kelly
Date: 25 Jun 2009 05:11 AM
Hi, this may be a pretty basic one, but after searching the boards and trying a number of different options I am getting nowhere fast.

Src XML:
<intro>
<catchphr>cathphr text</catchphr>
<summary>sumary text</summary>
<caselist>cases go here</caselist>
<representation>representation text</representation>
</intro>

My Code:
<xsl:choose>
<xsl:when test="following-sibling::representation">
<xsl:text>set to 0</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>do something else</xsl:text>
</xsl:otherwise>
</xsl:choose>

What I am trying to do:
If the very next sibling is equal to representation set to 0 otherwise do something else.

Whats hapening:
All following siblings are being read and if any of them equal reprentation the set to 0 condition is actioned, how do I just interrogate the very next node and check its name?

Postnext
Mike KellySubject: XSL following-sibling, how to select / query just the next node
Author: Mike Kelly
Date: 25 Jun 2009 05:52 AM
I have managed to answer my own question, for anyone looking for something similar here is the code:

<xsl:variable name="nextNode">
<xsl:value-of select="local-name(following-sibling::*[1])"/>
</xsl:variable>

<xsl:choose>
<xsl:when test="$nextNode ='representation'">
<xsl:text>set to 0</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>do something else</xsl:text>
</xsl:otherwise>
</xsl:choose>

Postnext
Mike KellySubject: XSL following-sibling, how to select / query just the next node
Author: Mike Kelly
Date: 25 Jun 2009 06:08 AM
Spoke to soon, my original problem, all be it in a more complicated form still exists. My above code only matches the node name not its path, which is fine with my simple example, but I also have xml like this:

<intro>
<narr-paragraph><header><title>Text</title></header></narr-paragraph>
</intro>

Where I specifically need to check the xpath "narr-paragraph/header/title". Using local-name() I only get a single nodes name which doesn't work in this case.

Any ideas?

Postnext
Alberto MassariSubject: XSL following-sibling, how to select / query just the next node
Author: Alberto Massari
Date: 26 Jun 2009 06:38 AM
Hi Mike,
I don't know your requirements, so maybe it doesn't work, but have you tried just with the "following" axis (that considers also the nested nodes, not only the ones at the same level of your current node)?

Alberto

Posttop
Mike KellySubject: XSL following-sibling, how to select / query just the next node
Author: Mike Kelly
Date: 26 Jun 2009 07:01 AM
Hi Alberto,

Due to my users requirements, the 'following' axis won't work. I am working on a print project using XSL-FO and need to put in line spacing and padding dependant on a nodes position and its siblings.

Think I may need to get the users to amend the source xml so I can use my existing code.

Thanks

Mike

>Hi Mike,
>I don't know your
>requirements, so maybe it
>doesn't work, but have you
>tried just with the
>"following" axis (that
>considers also the nested
>nodes, not only the ones at
>the same level of your current
>node)?
>
>Alberto

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.