<xsl:param name="known.gis">
PART | CHAP | SECT | ART | SYMBOLS | APPENDIX | SART
</xsl:param>
That's made $known.gis into a result tree fragment corresponding to
of a root node containing a text node with value teh string
"
PART | CHAP | SECT | ART | SYMBOLS | APPENDIX | SART
"
It _is not_ an Xpath expression.
<xsl:when test="child::($known.gis)[(_at_)ID][1]">
You can't ever have a ( after :: so that's a syntax error, but even if
$known.gis was simply PART and you went
child::$known.gis
then that would be equivalent to using
child::'PART'
which is also a syntax error: you can't have a string after :: either.
You can not, using standard XSLT use fragments of XPath expressions as
values. Any more than in C you can use the string "x +1" and somehow use
it to increment the variable x. Of course in either language you _can_
use such a string to have the specified effect but you can'tjust use the
string where an expression is expected, you have to write a parser
for the language contained in the string.
In your case, writing a parser in XSLT isn't much fun (although people
have done that) but do you really need the element list to be passed in
as a parameter. having that as a requirment vastly complicates the
problem.
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list