I have been following some videos on Umbraco TV by Worren, just to get a simple Umbraco Site up and running. I am attempting to create a Dynamic Navigation using Worrens XSLT. When I try and save the script I get the following Error.
Error occured
System.OverflowException: Value was either too large or too small for an Int32. at System.Convert.ToInt32(Double value) at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) at System.Xml.Xsl.Runtime.XmlQueryRuntime.ChangeTypeXsltArgument(XmlQueryType xmlType, Object value, Type destinationType) at System.Xml.Xsl.Runtime.XmlQueryContext.InvokeXsltLateBoundFunction(String name, String namespaceUri, IList`1[] args) at (XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime) at Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime) at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer) at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, TextWriter results) at umbraco.presentation.webservices.codeEditorSave.SaveXslt(String fileName, String oldName, String fileContents, Boolean ignoreDebugging)
Does anyone have any idea what this is refering to? I'm new to XSLT but under stand it is refuring to a Number that is too big or too small but I can't figure out which part is wrong.
<ul id="navi"> <li> <!-- Add the CSS class 'selected' if the homeNode ID matches our currentPage node ID --> <xsl:if test="$homeNode/@id = $currentPage/@id"> <xsl:attribute name="class"> <xsl:text>selected</xsl:text> </xsl:attribute> </xsl:if>
<!--Create a link to the homepage --> <a href="{umbraco.library:NiceUrl($homeNode/@id)}"> <xsl:value-of select="$homeNode/@nodeName" /> </a> </li>
<!-- For each child node of the homeNode that is a document (isDoc) and the level is 2 and the property umbracoNaviHide is NOT 1 (true/checked) --> <xsl:for-each select="$homeNode/* [@isDoc and @level = 2 and string(umbracoNaviHide) != '1']"> <li> <!-- Add the CSS class 'selected' if the currentPage or parent nodes (up the tree to the root) ID matches our current node's ID in the for each loop --> <xsl:if test="$currentPage/ancestor-or-self::* [@isDoc]/@id = current()/@id"> <xsl:attribute name="class"> <xsl:text>selected</xsl:text> </xsl:attribute> </xsl:if>
<!-- Create the link --> <a href="{umbraco.library:NiceUrl(@id)}"> <xsl:value-of select="@nodeName" /> </a> </li> </xsl:for-each> </ul> </xsl:template> </xsl:stylesheet>
I'm running the following;
Microsoft Windows Server 2003 R2 x64 Microsoft .NET 4.0 SQL CE Umbraco 4.6.1
Any help or any pointer on how to fix this then I would be thank full.
<!--Create a link to the homepage --> <a href="{umbraco.library:NiceUrl($homeNode/@id)}"> <xsl:value-of select="$homeNode/@nodeName" /> </a>
to something like this:
<!--Create a link to the homepage --> <xsl:if test="$homeNode/@id != ''"> <a href="{umbraco.library:NiceUrl($homeNode/@id)}"> <xsl:value-of select="$homeNode/@nodeName" /> </a> </xsl:if>
Umbraco 4.6.2 XSLT Script error
Hi Guys,
I have been following some videos on Umbraco TV by Worren, just to get a simple Umbraco Site up and running. I am attempting to create a Dynamic Navigation using Worrens XSLT. When I try and save the script I get the following Error.
Error occured
System.OverflowException: Value was either too large or too small for an Int32.
at System.Convert.ToInt32(Double value)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Xml.Xsl.Runtime.XmlQueryRuntime.ChangeTypeXsltArgument(XmlQueryType xmlType, Object value, Type destinationType)
at System.Xml.Xsl.Runtime.XmlQueryContext.InvokeXsltLateBoundFunction(String name, String namespaceUri, IList`1[] args)
at (XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, TextWriter results)
at umbraco.presentation.webservices.codeEditorSave.SaveXslt(String fileName, String oldName, String fileContents, Boolean ignoreDebugging)
Does anyone have any idea what this is refering to? I'm new to XSLT but under stand it is refuring to a Number that is too big or too small but I can't figure out which part is wrong.
Here is the XSLT File:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library"
exclude-result-prefixes="msxml umbraco.library">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<!-- Root Node -->
<xsl:variable name="rootNode" select="$currentPage/ancestor-or-self::root" />
<!-- Homepage -->
<xsl:variable name="homeNode" select="$rootNode/Home [@isDoc]" />
<ul id="navi">
<li>
<!--
Add the CSS class 'selected' if the homeNode ID matches our
currentPage node ID
-->
<xsl:if test="$homeNode/@id = $currentPage/@id">
<xsl:attribute name="class">
<xsl:text>selected</xsl:text>
</xsl:attribute>
</xsl:if>
<!--Create a link to the homepage -->
<a href="{umbraco.library:NiceUrl($homeNode/@id)}">
<xsl:value-of select="$homeNode/@nodeName" />
</a>
</li>
<!--
For each child node of the homeNode that is a document (isDoc)
and the level is 2
and the property umbracoNaviHide is NOT 1 (true/checked)
-->
<xsl:for-each select="$homeNode/* [@isDoc and @level = 2 and string(umbracoNaviHide) != '1']">
<li>
<!--
Add the CSS class 'selected' if the currentPage or parent nodes (up the tree to the root)
ID matches our current node's ID in the for each loop
-->
<xsl:if test="$currentPage/ancestor-or-self::* [@isDoc]/@id = current()/@id">
<xsl:attribute name="class">
<xsl:text>selected</xsl:text>
</xsl:attribute>
</xsl:if>
<!-- Create the link -->
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName" />
</a>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
I'm running the following;
Microsoft Windows Server 2003 R2 x64
Microsoft .NET 4.0
SQL CE
Umbraco 4.6.1
Any help or any pointer on how to fix this then I would be thank full.
Hi Thomas
Try changing this piece:
to something like this:
Does that help?
/Kim A
is working on a reply...