我正在尝试应用Muenchian分组来消除重复的节点,但我似乎无法使其工作。
输入:
<GetUsersByRoleRspMsg>
<UserList>
<User>
<UserId>PPAUSER1</UserId>
<Email>xyz@gmail.com</Email>
</User>
<User>
<UserId>PPAUSER1</UserId>
<Email>xyz@gmail.com</Email>
</User>
</UserList>
</GetUsersByRoleRspMsg>
必需:
<GetUsersByRoleRspMsg>
<UserList>
<User>
<UserId>PPAUSER1</UserId>
<Email>xyz@gmail.com</Email>
</User>
</UserList>
</GetUsersByRoleRspMsg>
我的代码的关键部分是
<xsl:key name="userIdEmailPair"
match="User"
use="concat(UserId,' ',Email)"/>
<xsl:copy>
<xsl:for-each select="User[
count(. | key('userIdEmailPair',
concat(UserId,' ',Email))[1])
= 1]">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:copy>
答案 0 :(得分:1)
我发现您的分组代码没有任何问题。如果您尝试:
<xsl:template match="UserList">
<xsl:copy>
<xsl:copy-of select="User[count(. | key('userIdEmailPair',concat(UserId,' ',Email))[1]) = 1]"/>
</xsl:copy>
</xsl:template>
您将获得您正在寻找的结果。
当然,您可以将最后一个模板缩短为:
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]