我需要生成一个保留id唯一性的响应。换句话说,我的输入是:
<InputSource>
<clientInfo>
<id>id1</id>
<name>name1</name>
</clientInfo>
<clientInfo>
<id>id2</id>
<name>name2</name>
</clientInfo>
<clientInfo>
<id>id3</id>
<name>name3</name>
</clientInfo>
<clientInfo>
<id>id2</id>
<name>name4</name>
</clientInfo>
</InputSource>
所需的输出是:
<client:OutputSource>
<client:custInfo>
<client:id>id1</client:id>
</client:custInfo>
<client:custInfo>
<client:id>id2</client:id>
</client:custInfo>
<client:custInfo>
<client:id>id3</client:id>
</client:custInfo>
</client:OutputSource>
我试过的XSL是:
<xsl:template match="/">
<client:OutputSource>
<xsl:for-each select="/client:InputSource/client:clientInfo">
<xsl:variable name="idRows" select="/client:OutputSourc/client:custInfo/client:id"/>
<xsl:variable name="currentId" select="client:id" />
<xsl:if test="contains($currentId, $idRows)">
<client:custInfo>
<client:id>
<xsl:value-of select="client:id"/>
</client:id>
</client:custInfo>
</xsl:if>
</xsl:for-each>
</client:OutputSource>
它没有按预期工作。我应该在XSL中修复什么?