XSLT:对具有或不具有属性的项目进行分组

时间:2013-09-11 11:44:43

标签: xml xslt

我尝试按属性对项目进行分组,并且我希望那些没有该属性的项目最终出现在一个组中。 当前的XSLT是这样的:

    <xsl:for-each-group select="list/item" group-by="@myAttr">
    ...
    </xsl:for-each-group>

目前忽略没有myAttr的元素。 我想到的唯一事情就是在那之后做一个for-each并在所有没有该属性的项目上运行相同的代码。有没有更好的方法呢?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用<xsl:for-each-group select="list/item" group-by="string(@myAttr)">,因为没有属性的项目会按空字符串值进行分组。

答案 1 :(得分:0)

group-by="(@myAttr,myDefaultValue)[1]"

将允许您指定用于缺少属性的任意值。