Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在xslt中,Position()不是从1开始的_Xslt - Fatal编程技术网

在xslt中,Position()不是从1开始的

在xslt中,Position()不是从1开始的,xslt,Xslt,当我在xslt中占据一席之地时,值以5开头。但应该从1开始。有什么理由我在这里得到值5吗。我使用变量tempPosition来获取position的值。因为它是从5开始的,所以我从1开始减去4。但我想知道为什么从5开始 这是我的xslt: ``您应该发布一个可复制的示例,最好将其最小化到仅演示问题所需的程度 通常,position函数返回当前节点在中的位置。当前节点列表由当前实例化的xsl:apply templates或xsl:for每个指令的select表达式决定,而不是由任何模板的匹配模

当我在xslt中占据一席之地时,值以5开头。但应该从1开始。有什么理由我在这里得到值5吗。我使用变量tempPosition来获取position的值。因为它是从5开始的,所以我从1开始减去4。但我想知道为什么从5开始

这是我的xslt:

``

您应该发布一个可复制的示例,最好将其最小化到仅演示问题所需的程度


通常,position函数返回当前节点在中的位置。当前节点列表由当前实例化的xsl:apply templates或xsl:for每个指令的select表达式决定,而不是由任何模板的匹配模式决定

如果看不到调用模板的apply templates指令,就无法判断模板中的位置。如果apply templates指令选择了17个节点,并且模板T与这些节点中的第五个节点匹配,则在模板T中,位置的值将为5。你还没有说为什么你认为它应该是一个,所以我怀疑你还没有“正确理解规范”。

谢谢你的回复,Michael。这是我使用的第一个模板。。那么,select=@*|节点选择了多少个节点?如果没有看到您的源XML,我们无法确定。当然,它可能会选择与此模板不匹配的节点以及与此模板匹配的节点,position计算的是所选节点的数量,而不是此模板匹配的数量。Cc 55.0 99.639383952 99.312591553