At 2003-07-15 13:51 -0400, Greg Johnson wrote:
What are the restrictions on using xsl:variables?
String variables cannot be used as raw XPath expression syntax and must
explicitly be referenced in any XPath expression as only a simple string.
Am I not allowed to use it in an xsl:sort element?
As long as you don't try to use the string value as an XPath expression.
I get the following error for the folowing xsl fragment:
<xsl:variable name="sortby">ARRIVED</xsl:variable>
Perhaps use <xsl:variable name="sortby" select="'ARRIVED'"/>
<xsl:variable name="sortorder">descending</xsl:variable>
Perhaps use <xsl:variable name="sortorder" select="'descending'"/>
<xsl:template match="REPORT">
<h1>
<xsl:value-of select="$sortby"/>
</h1>
<xsl:apply-templates select="INTERCHANGE">
<xsl:sort select="{$sortby}" order="{$sortorder}" /> <!-- ERROR
HERE -->
I'm assuming by "ARRIVED" you mean the value of the child element named
"ARRIVED" ... if so, then use:
<xsl:sort select="*[name(.)=$sortby]" order="{$sortorder}"/>
Note in the above that I am using the variable, but not *as* an XPath
expression, but rather *in* an XPath expression as a simple string. I'm
selecting all children and then only referencing that child whose name is
the name in the string variable.
Note that what you are trying to do is *not* namespace safe, but I'm
assuming you are not using namespaces.
I hope this helps.
....................... Ken
--
Upcoming hands-on courses: in-house corporate training available;
North America public: XSL-FO Aug 4,2003; XSLT/XPath Aug 12, 2003
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6 Definitive XSLT and XPath
ISBN 0-13-140374-5 Definitive XSL-FO
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners: http://XMLGuild.info
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list