We have moved!

You are currently looking at documentation for Umbraco 8 and older versions.
An automated guess is that docs.umbraco.com/umbraco-cms/reference/templating/macros/xslt/using-variables-and-parameters could be the link to the new documentation for Umbraco 9 and newer versions.

    Using Variables and Parameters

    Variables and parameters are temporary storage devices in XSLT for holding values to complete node sets of data.

    Variables are defined with a name, and can be filled two different ways. The first method is to select the data into the variable as follows:

    <xsl:variable name="myID" select="$currentPage/@id"/>
    

    The second method is to fill the variable by having the content rendered into the variable.

    <xsl:variable name="myID">
        <xsl:value-of select="$currentPage/@id"/>
    </xsl:variable>
    

    The second method is useful when applying logic to filling the variable, in which case an if command or choose command would allow you to have the value selected logically.

    Parameters are handled the same way, except their command is "xsl:param".

    As for the difference, it is a matter of where they can be assigned.

    This was copied the original book from Casey Neehouse from the books section of umbraco.org