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查找父元素中当前元素的计数_Xslt_Xslt 1.0_Xslt 2.0 - Fatal编程技术网

我想使用XSLT查找父元素中当前元素的计数

我想使用XSLT查找父元素中当前元素的计数,xslt,xslt-1.0,xslt-2.0,Xslt,Xslt 1.0,Xslt 2.0,当我使用XSLT分析当前节点为“c”时,我想找到“a”中的“b”计数。 是否可以使用XSLT执行此操作? 我不知道元素名“b”是什么,即它前面的同级元素。如果您位于c标记上,或者不管元素实际被调用了什么,那么要获得前面同级元素的计数,您可以这样做 <a> <z/> <b/> <b/> <b/> <c/> </a> 在本例中,您可以定义一个键,如下所示,根据具有不同名称的第一个元素的唯一id对

当我使用XSLT分析当前节点为“c”时,我想找到“a”中的“b”计数。
是否可以使用XSLT执行此操作?

我不知道元素名“b”是什么,即它前面的同级元素。

如果您位于
c
标记上,或者不管元素实际被调用了什么,那么要获得前面同级元素的计数,您可以这样做

<a>
  <z/>
  <b/>
  <b/>
  <b/>
  <c/>
</a>
在本例中,您可以定义一个键,如下所示,根据具有不同名称的第一个元素的唯一id对元素进行分组:

<a>
  <z/>
  <b/>
  <b/>
  <b/>
  <c/>
  <z/>
  <b/>
  <c/>
</a>

然后你可以得到这样的计数:

<xsl:key name="keyc" match="*" use="generate-id(following-sibling::*[name() != name(current())][1])" />

以下是正在实施的三个选项

<xsl:value-of select="count(key('keyc', generate-id()))" />

如果您位于
c
标记上,或者不管实际调用的元素是什么,那么要获得前面同级的计数,您可以这样做

<a>
  <z/>
  <b/>
  <b/>
  <b/>
  <c/>
</a>
在本例中,您可以定义一个键,如下所示,根据具有不同名称的第一个元素的唯一id对元素进行分组:

<a>
  <z/>
  <b/>
  <b/>
  <b/>
  <c/>
  <z/>
  <b/>
  <c/>
</a>

然后你可以得到这样的计数:

<xsl:key name="keyc" match="*" use="generate-id(following-sibling::*[name() != name(current())][1])" />

以下是正在实施的三个选项

<xsl:value-of select="count(key('keyc', generate-id()))" />

使用
xsl:number
。它打印出当前元素的数字,并根据需要进行格式化

关于如何进行计算,有多种选择, e、 g.多级或字母级


实际上,它是一个非常强大的工具。

使用
xsl:number
。它打印出当前元素的数字,并根据需要进行格式化

关于如何进行计算,有多种选择, e、 g.多级或字母级

实际上,它是一个非常强大的工具

当分析当前节点为“c”时,我想在“a”中找到“b”的计数

让我换一种说法:
您希望统计与
处于同一级别的所有
的出现次数

此XSLT通过调用带有参数的
来完成此任务:
待计数元素的
本地名称
(在本例中为“b”):


在您的示例中,输出仅为:

三,

当分析当前节点为“c”时,我想在“a”中找到“b”的计数

让我换一种说法:
您希望统计与
处于同一级别的所有
的出现次数

此XSLT通过调用带有参数的
来完成此任务:
待计数元素的
本地名称
(在本例中为“b”):


在您的示例中,输出仅为:

三,


在你的问题中,你说你不知道元素名“b”,所以如果你不知道它是什么,你就不能真正计算它。你是说你想得到紧靠前一位的
c
,然后计算出现的次数?我已经修改了我的答案,显示了许多不同的选项,你可以尝试。谢谢你,很多选项第一个选项解决了我的问题。它得到了我想要的所有计数,只计算“b”在你的问题中,你说你
不知道元素名称“b”
,所以如果你不知道是什么,你就不能真正数数。你是说你想得到前一个兄弟的
c
,并计算出现的次数吗?我已经修改了我的答案,显示了许多不同的选项,你可以尝试。谢谢,很多选项第一个解决了我的问题。你的问题不清楚。您的标题说您想要“当前元素在其父元素中的计数”。如果您在
c
的上下文中,那么这将意味着名为
c
的所有兄弟姐妹的计数。但是你说你想数
b
——但是你不知道
b
的名字。那么您打算如何识别
b
?您的问题不清楚。您的标题说您想要“当前元素在其父元素中的计数”。如果您在
c
的上下文中,那么这将意味着名为
c
的所有兄弟姐妹的计数。但是你说你想数
b
——但是你不知道
b
的名字。那么您打算如何识别
b