在XSLT中计算具有特定属性值的每个元素的出现次数?

时间:2016-11-15 14:07:38

标签: xml xslt

我有这个XML文件:

SyntaxError: 'break' outside loop

我想算一下<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet href="bg2.xsl" type="text/xsl"?> <root text="Récapitulatif des bugs MD 360"> <graph> <item text="3988 (K2) : [MozillaMD]" severite="K2" importance="Anomalie" status="RESOLVED" etat=" WORKSFORME" date="2016-11-15"></item> <item text="4853 (K2) : Profil Midas" severite="K2" importance="Evolution" status="ASSIGNED" etat=" FIXED" date="2016-11-15"></item> <item text="4991 (K3) : ECU " severite="K3" importance="Evolution" status="RESOLVED" etat=" FIXED" date="2016-11-15"></item> </graph> </root> 我有多少。为此,我在XSLT中这样做,但我总是有0:

severite="K2"

2 个答案:

答案 0 :(得分:2)

更改

K2 -- <xsl:value-of select="count(graph/item[severite='K2'])"/>

K2 -- <xsl:value-of select="count(item[@severite='K2'])"/>

<强>因为

  1. 当前节点已经graph,因此您的XPath不应该重复graph
  2. severite是属性,不是元素,因此应以@为前缀。

答案 1 :(得分:1)

  

计数(图/项目[severite = 'K2'])

与父item计算所有graphitem已被过滤:子severite必须包含内容'K2'。

<强>解决方案

count(item[@severite='K2'])

  • severite是元素item的属性。需要@
  • 同样:您当前的上下文节点已经graph