这是另一个令人兴奋的人,也许对你来说很容易。
我有两个列表,一个是将 item-ids 连接到 group-ids 的映射,第二个是具有简单值的项目列表。我需要将项目值的数量累积到组总数。最初,这两个列表基于不同的 XML 文件。
<!-- List 1 mapping-->
<mapping>
<sub id="1" item="a" group="a">
<sub id="2" item="b" group="a">
<sub id="3" item="d" group="b">
<sub id="4" item="e" group="b">
<sub id="5" item="f" group="c">
</mapping>
<!-- List 2 items -->
<items>
<item id="a" val="OK"/>
<item id="b" val="ERROR"/>
<item id="c" val="OK"/>
<item id="d" val="OK"/>
<item id="e" val="OK"/>
<item id="f" val="OK"/>
</items>
我目前的做法:
<xsl:variable name="failed-total">
<xsl:variable name="groups-total">
<xsl:value-of select="count(mapping//sub[not(@group=preceding-sibling::sub/@group)])"/>
</xsl:variable>
<!--Selecting the unique groups of the first list:-->
<xsl:for-each select="mapping//sub[not(@group=preceding-sibling::sub/@group)]">
<xsl:variable name="failed">
<xsl:value-of select="items/item[@id=current()/@item and val='ERROR']"/>
</xsl:variable>
<!-- TODO: add value of failed to failed-total value -->
</xsl:for-each>
需要的输出:
Number of Groups: 3
Groups failed: 1
将列表 2 更改为以下内容:
<!-- List 2 items -->
<items>
<item id="a" val="ERROR"/>
<item id="b" val="ERROR"/>
<item id="c" val="OK"/>
<item id="d" val="OK"/>
<item id="e" val="OK"/>
<item id="f" val="OK"/>
</items>
然后应该输出相同,因为项目 a 和 be 在同一组中:
Number of Groups: 3
Groups failed: 1
欢迎任何提示。