[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] navigation, TEI
Dear List! I'm working on extending the TEI xsl stylesheet set with a more complex 'prev-next' navigation bar. For the linking i need two parameters: the text of the link, and the id of the link. I use a template to get the appropriate node: <xsl:template name="getPrev"> <xsl:variable name="nodeSet"> <xsl:text>self::div0 | self::div1 | self::div2 | self::div3 | self::div4</xsl:text> </xsl:variable> <xsl:choose> <xsl:when test="(preceding-sibling::*[$nodeSet]/head)[last()]"> <xsl:copy-of select="preceding::*[$nodeSet]/head[last()]" /> </xsl:when> <xsl:when test="(ancestor::*[$nodeSet]/head)[last()]"> <xsl:copy-of select="ancestor::*[$nodeSet]/head[last()]" /> </xsl:when> <xsl:otherwise></xsl:otherwise> </xsl:choose> </xsl:template> and i call this with: <xsl:variable name="previous"> <xsl:call-template name="getPrev" /> </xsl:variable> but as i would like to get the id of the node the following code doesn't work: <xsl:variable name="previousID"> <xsl:value-of select="generate-id( $previous )" /> </xsl:variable> with the xsl processor saying: 'generate-id() : invalid arg expecting a node-set' So i have to write another template (getPrevID) with the only difference of the selection: 'select="generate-id( ... )"' and the xpath expression (preceding-sibling::*[$nodeSet]/head)[last()] is the same than this: (preceding-sibling::*/head)[last()] the $nodeSet variable doesn't work at this situation. I use the 'xsltproc.exe' program shipped with TEI-Emacs. Have you got any idea to solve these problems? Thanks, kiraly peter http://www.arcanum.hu
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|