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