Re: [xsl] getting the last value of a nodeset

Subject: Re: [xsl] getting the last value of a nodeset
From: James Fuller <jim.fuller@xxxxxxxxxxxxxx>
Date: Sun, 06 Feb 2005 13:51:14 +0100
Prasad Akella wrote:

hi,

i would like to get the last value of an xpath expression like for example

<xforms:bind nodeset="/Exam/ExamMetaData/Title"/>

in this i would like to take the value of the attribute xforms:bind/@nodeset and traverse it to get the value of Title



I would reiterate your question.....you want the value of the xpath expression /Exam/ExamMetaData/Title (not the last value...or segment of xpath statement....sorry being a bit pedantic)....the well known problem here is dynamically evaluating strings as XPATH statements......in other words you want to put your @nodeset attribute into a string variable...then use the string variable as input of a select statement....


I would suggest looking at;

http://www.exslt.org/dyn/functions/evaluate/index.html

note: most processors, and saxon has some equivelent eval type function for you to use

the only thing to be slightly careful with is if you are using document() calls and extra namespaces (like xforms)..first make sure you are dynamically selecting properly with whatever processor function call,

something like the following (with saxon namespace being prop declared) would be an example of doing this with saxon;

<xsl:variable name="var" select="/rootelement/xforms:bind/@nodeset"/>

<xsl:value-of select="saxon:evaluate($var)"/>

note this is untested!

gl, Jim Fuller

Current Thread