[Home] [By Thread] [By Date] [Recent Entries]

Subject: <xsl:eval> equivalent problem
From: crestall@xxxxxxxxxxx
Date: Wed, 4 Dec 2002 13:00:06 -0700
Hi All,
?
I am upgrading an WD xsl stylesheet to use the http://www.w3.org/1999/XSL/Transform namespace and have run into some problems with finding an equivalent to <xsl:eval>.? More specifically, I'm trying to find a way to pass parameters into jscript and vbscript functions that were in xsl:eval blocks.? The document currently contains an xsl:eval block that defining the variables for use throughout the xsl:
?
??????????????????????? <xsl:stylesheet
?????? ???????????????? ?xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
?????? ???????????????? ?xmlns:dav="DAV:"? 
?????? ???????????????? ?xmlns:f="urn:schemas-microsoft-com:publishing:"
?????? ???????????????? ?xmlns:office="urn:schemas-microsoft-com:office:office">
?
??? ??????????????????? <xsl:template match="/">
??? ??????? 
       <xsl:eval>
??????????????????????????????????? var g_strDavNS = getNamespaceUsedInXml(this, "DAV:");
??????????????????????????????????? var g_dataURL = this.selectSingleNode("/" + g_strDavNS + ":multistatus/dataURL").text;
??????????????????????????????????? var g_desc = this.xml;
??????????????????????? </xsl:eval>
?
       Followed by quite a bit of xsl processing with periodic reference to these variables throughout:
       ie.
       . dataurl=<xsl:eval>g_dataURL;</xsl:eval>
       and
       <xsl:eval>getDesc(g_desc);</xsl:eval>
       ?
       followed by a large script section:
       ?
       <xsl:script language="vbscript">
       ??????????? <![CDATA[
       ??????????? Function GetIt(value, name)
       ??????????????????????? name = value
       ??????????????????????? GetIt=""
       ??????????? End Function
       ??????????? Function getHTMLMain(dModified, dCreate)
       ??????????????????????? if dCreate = "" then
       ??????????????????????????????????? dCreate=dModified
       ??????????????????????? end if
       ??????????????????????? iDiff = DateDiff("d",now(),dCreate)
       ??????????????????????? if abs(iDiff) < 3 then
       ??????????????????????????????????? getHTMLMain = getHTML()
       ??????????????????????????????????? exit function
       ??????????????????????? else 
       ??????????????????????????????????? iDiff=DateDiff("d",now(), dModified)
       ??????????????????????????????????? if abs(iDiff) < 3 then
       ??????????????????????????????????????????????? getHTMLMain = getHTML()
       ??????????????????????????????????????????????? exit function
       ??????????????????????????????????? end if
       ??????????????????????? end if
       ??????????????????????? getHTMLMain = ""
       ??????????? end function
       ??????????? 
       ??????????? function getHTML()
       ??????????????????????? getHTML = "<img src='_WPR_/newlink.gif' border='0'/>"
       ??????????? End function
       ]]>
       </xsl:script>
       <xsl:script language="JScript">
       ??????????? <![CDATA[
       ??????????? 
       ??????????? function getDesc(sDesc)
       ??????????? {
       ??????????????????????? if(sDesc.length > 50)
       ??????????????????????????????????? return? sDesc;
       ??????????????????????? else
       ??????????????????????????????????? return sDesc;
       ??????????? }
       ??????????? 
       ??? function getNamespaceUsedInXml(nodItem, strNamespace)
       {
       ??????????? if (!nodItem)
       ??????????? {
       ??????????????????????? return "";
       ??????????? }
       ?
       ??????????? var nodOwnerDocument = null;
       ??????????? if (9 == nodItem.nodeType)
       ??????????? {
       ??????????????????????? // What we were handed was actually the root document node and not a regular node.
       ??????????????????????? nodOwnerDocument = nodItem;
       ??????????? }
       ??????????? else
       ??????????? {
       ??????????????????????? // We were handed a regular node. Get the root document node.
       ??????????????????????? nodOwnerDocument = nodItem.ownerDocument;
       ??????????? }
       ??????????? .......more script here......
       ?
       ??????????? return strShortNamespace;
       }
       ]]>
       ??????????? </xsl:script>
       </xsl:stylesheet>
       ?
       It seems as though I could create <xsl:variable> for the three jscript/vbscript specified variables above but I'm not sure how I would pass an equivalent "this" parameter.? I know the xsl:script tags are not supported either and am wondering if the approach of setting an xsl:variable to a script call is even possible. 
       ?
       Hope this makes sense.? Thanks in advance,
       Chris


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member