实现功能:将ASP.NET获取的一个值传到XSLT文件,在XSLT文件中用于控制<for-each>循环的次数
int
count
=
5
;
XsltArgumentList args = new XsltArgumentList(); // 实例化一个XSL参数对象
XslCompiledTransform transform = new XslCompiledTransform();
args.AddParam( " count " , "" , count); // 为XSL参数对象传参
transform.Load(XslPath);
transform.Transform(XmlPath, args, output); // 将参数和XML传到XSLT做转换
XsltArgumentList args = new XsltArgumentList(); // 实例化一个XSL参数对象
XslCompiledTransform transform = new XslCompiledTransform();
args.AddParam( " count " , "" , count); // 为XSL参数对象传参
transform.Load(XslPath);
transform.Transform(XmlPath, args, output); // 将参数和XML传到XSLT做转换
将5传入了XSLT,接下来看XSLT如何调用这个值
<
xsl:param
name
="count"
/>
< xsl:template match ="/" >
< xsl:for-each select ="item" >
< xsl:if test ="position() <= $count" >
< xsl:value-of select ="title" />
< br />
</ xsl:if >
</ xsl:for-each >
</ xsl:template >
< xsl:template match ="/" >
< xsl:for-each select ="item" >
< xsl:if test ="position() <= $count" >
< xsl:value-of select ="title" />
< br />
</ xsl:if >
</ xsl:for-each >
</ xsl:template >
<xsl:param name="count"> 用在<template>之外,用于声明一个从外部传进来的参数,调用的时候用$count
<xsl:if test="position() <= $count>中XSLT内置函数position()取得<xsl:for-each>的当前循环次数,<=是<=的转义字符.