我想输出n次。因此,我想像这样使用每个
<xsl:variable name="count" select="string-length(data/key)" />
<xsl:for-each select="1 to $count">X</xsl:for-each>
这很好用,但是如果我想从字符串长度
中减去一个数字<xsl:variable name="count" select="string-length(data/key) - 3" />
编译器给了我一个&#34;必需的类型是xs:integer,但是得到了xs:double&#34;
我尝试设置变量类型
<xsl:variable name="count" select="string-length(data/key) - 3" as="xs:integer" />
到变量声明,但错误仍然存在。
当我输出变量值
时<xsl:value-of select="$count" />
我得到一个整数值。这里发生了什么?
答案 0 :(得分:0)
当我跑
时,我无法重现这个问题<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs">
<xsl:template match="/">
<xsl:variable name="count" select="string-length(data/key) - 3" />
<xsl:for-each select="1 to $count">X</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
与Saxon 9.5对抗
<data>
<key>Kibology</key>
</data>
我得到输出<?xml version="1.0" encoding="UTF-8"?>XXXXX
。
请发布一个最小但完整的样本,以便我们重现问题,当然告诉我们您使用的XSLT 2.0处理器。