在xsl中怎样指定循环次数?(FAQ)
我的XML结构只有一个节点
<data text="test"></data>
我怎样在xsl中循环显示上个节点n次?
解答1:
程序代码:
<xsl:for-each select="(document('')//namespace::*)[position() < 20]">
<xsl:value-of select="position()" />
</xsl:for-each>
或者
程序代码:
<xsl:for-each select="(document('')//namespace::* | document('')//* | //*)[position() < 20]">
<xsl:value-of select="position()" />
</xsl:for-each>
解答2:
程序代码:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:myFun="urn:moonpiazza">
<msxsl:script language="Javascript" implements-prefix="myFun">
< ![CDATA[
var num = 0;
var n = 10; // 循环次数
function getNum()
{
num++;
return num;
}
function maxNum()
{
return n;
}
]] >
</msxsl:script>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="data">
<xsl:copy-of select="." />
<xsl:if test="myFun:getNum() < myFun:maxNum()">
<xsl:apply-templates select="../."/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
解答3:
程序代码:
use template:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="intend">5</xsl:param>
<xsl:template match="/">
<xsl:call-template name="foreach">
<xsl:with-param name="i">1</xsl:with-param>
<xsl:with-param name="val"><xsl:value-of select="/data/@text"/></xsl:with-param>
<xsl:with-param name="intend"><xsl:value-of select="$intend"/></xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="foreach">
<xsl:param name="i">1</xsl:param>
<xsl:param name="val"></xsl:param>
<xsl:param name="intend">1</xsl:param>
<xsl:value-of select="$val"/><br/>
<xsl:if test="$i < $intend">
<xsl:call-template name="foreach">
<xsl:with-param name="i"><xsl:value-of select="$i+1"/></xsl:with-param>
<xsl:with-param name="val"><xsl:value-of select="$val"/></xsl:with-param>
<xsl:with-param name="intend"><xsl:value-of select="$intend"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
以上3种解决方案皆可行
分享到:
相关推荐
XSL 销售与收款循环.xlsx
自己收集的XSL中文教程大全, 比较多, 比较适合初学者
在XSL使用数组例子 在XSL使用数组例子 在XSL使用数组例子
xml+xsl中分割字符
可以获取当前节点的位置,而且还能限制显示特定位置的节点,例如有18条记录,可以在xsl中设置只显示第1-6条,也可以设置只显示第7-12条,再配合客户端脚本,就可以动态改变xsl文档中控制显示指定位置节点的属性,...
XSL函数大全 XSL元素大全 常用的XPATH手册 XSL知识速查
XSL 销售与收款循环.zip
在前面的章节中,我们解释了如何用XSL在浏览器中将XML文档转换成HTML,窍门 就是让JavaScript使用一个XML解析器来进行转换。但是当浏览器不支持XML解析 器时,这种方法是不奏效的。要使XML数据对所有浏览器都可用,...
XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。 XSL-FO 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...
稍熟悉XPATH的人都知道,在XSL中使用translate函数可以将一个字符串进行逐字符替换。但是,如果要替换一个子字符串为另一个子字符串,对XPATH1.0而言,用translate就有点力不从心了。 一般来讲,在XSL中进行字符串...
XSL速查XSL速查XSL速查XSL速查XSL速查XSL速查
使用java解析word文件里得数学公式时,会用到该文件.可以将公式的格式转为目标格式. Mathml (MML) ...Office在安装目录中提供了将OMML转为MathML的xsl工具:MML2OMML.XSL 注:试用前,请先打开文件并阅读第一行.
XSL实例 博文链接:https://it-ming-java.iteye.com/blog/1703464
用 xsl 中的各种函数为 XML 显示提供灵活性
xsl使用示例代码
用XSL把XML转化在EXCEL导出, 里面包括了反台实现与XSL模板.
XML+xsl讲XML文档的内容用xsl建表。
XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档
很不错的xsl;很不错的xsl;很不错的xsl