我有一个要求,我需要通过将“ F_NAME:S_Name:L_Name”与“年龄”元素分组将其合并。但是在连接时,我必须排除 重复项。
我使用了for-each-group,然后尝试了Concat函数,代码如下。
<xsl:template match="/">
<ns0:Parent>
<xsl:for-each-group select="/ns0:Parent/ns0:child" group-by="ns0:Age">
<ns0:child>
<ns0:F_Name>
<xsl:value-of separator=";" select="current-group()/concat(ns0:S_Name,':',ns0:F_NAME,':',ns0:L_Name)"/>
</ns0:F_Name>
</ns0:child>
</xsl:for-each-group>
</ns0:Parent>
</xsl:template>
<Parent>
<child>
<F_NAME> Alex </F_NAME>
<S_Name> Mark <S_Name>
<L_Name> Jay </L_Name>
<Age> 35 </Age>
</child>
<child>
<F_NAME> Marie </F_NAME>
<S_Name> Julie <S_Name>
<L_Name> Kane </L_Name>
<Age> 35 </Age>
</child>
<child>
<F_NAME> Alex </F_NAME>
<S_Name> Mark <S_Name>
<L_Name> Jay </L_Name>
<Age> 35 </Age>
</child>
</Parent>
<Parent>
<Child>
<Age>35</Age>
<F_Name>Alex:Mark:Jay;Marie:Julie:Kane;Alex:Mark:Jay</F_NAME>
</Child>
</Parent>
<Parent>
<Child>
<Age>35</Age>
<F_Name>Alex:Mark:Jay;Marie:Julie:Kane</F_NAME>
</Child>
</Parent>
答案 0 :(得分:0)
好吧,如果您使用distinct-values(current-group()/concat(ns0:S_Name,':',ns0:F_NAME,':',ns0:L_Name))
而不是current-group()/concat(ns0:S_Name,':',ns0:F_NAME,':',ns0:L_Name)
,则应该获得唯一的名称。