[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] mathematical functions - specifically sqroot
Attempting to resolve the following pseudo code:
N = number of children sqrt = sqRoot(N) if (sqrt - (int)sqrt > 0) w = (int)sqrt h = w + 1 else w = sqrt h = w I came across the following xslt script. Is there a simpler way that I might be able to implement this? Currently, I am unable to download any additional software off the internet onto my PC. Consequently, I am also unable to get the xalan, xerces, and saxon programs. I am relying entirely on MSXML2.0 at this point as I have IE 5.0. However, I am attempting to develop for MSXML3.0 (or whichever version ships with IE 6.x) for an upgrade my group will receive in May 2003. Thanks in advance, Bix <xsl:stylesheet version = "1.0 " xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:MyRepeatGenerator="MyRepeatGenerator" xmlns:MyRepeatableFunction="MyRepeatableFunction" exclude-result-prefixes = "xsl msxsl MyRepeatGenerator MyRepeatableFunction" > <xsl:import href = "within.xsl" /> <MyRepeatGenerator:MyRepeatGenerator/> <MyRepeatableFunction:MyRepeatableFunction/> <xsl:template name = "sqrt" > <xsl:param name = "N" /> <xsl:param name = "Eps" select = "0.1" /> <xsl:variable name = "vMyRepeat" select = "document('')/*/MyRepeatGenerator:*[1]" /> <xsl:variable name = "vMyFunction" select = "document('')/*/MyRepeatableFunction:*[1]" /> <xsl:variable name = "vrtfParams" > <param> <xsl:value-of select = "$N div 2" /> </param> <xsl:copy-of select = "$vMyFunction" /> <param> <xsl:value-of select = "$N" /> </param> </xsl:variable> <xsl:call-template name = "within" > <xsl:with-param nam e = "pGenerator" select = "$vMyRepeat" /> <xsl:with-param name = "pParam0" select = "msxsl:node-set($vrtfParams)/*" /> <xsl:with-param name = "Eps" select = "$Eps" /> </xsl:call-template> </xsl:template> <xsl:template name = "myRepeater" match = "*[namespace-uri()='MyRepeatGenerator']" > <xsl:param name = "pList" select = "/.." /> <xsl:param name = "pParams" /> <xsl:choose> <xsl:when test = "not($pList)" > <xsl:copy-of select = "$pParams[1]/node()" /> </xsl:when> <xsl:otherwise> <xsl:apply-templates select = "$pParams[2]" > <xsl:with-param name = "X" select = "$pList[last()]" /> <xsl:with-param name = "N" select = "$pParams[3]/node()" /> </xsl:apply-templates> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name = "myRptFn" match = "*[namespace-uri()='MyRepeatableFunction']" > <xsl:param name = "X" /> <xsl:param name = "N" /> <xsl:value-of select = "($X + ($N div $X)) div 2" /> </xsl:template> </xsl:stylesheet> _________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|