动态验证响应的唯一性

时间:2014-10-20 17:32:07

标签: xslt

我需要生成一个保留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中修复什么?

0 个答案:

没有答案