2014-01-17 112 views
0

這是我的XML:Muenchian分組的XSLT

<LIGHT_DESCRIPTION_LIST> 
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>17</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION> 
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>UNKNOWN</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION> 
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>UNKNOWN</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION> 
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>17</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION> 
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>UNKNOWN</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION>  
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>17</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION> 
    <LIGHT_DESCRIPTION> 
     <LIGHT_CHARACTERISTICS>Fl</LIGHT_CHARACTERISTICS> 
     <LIGHT_CATEGORY>17</LIGHT_CATEGORY> 
    </LIGHT_DESCRIPTION> 
</LIGHT_DESCRIPTION_LIST> 

這是我的XSLT:

<xsl:for-each select="LIGHT_DESCRIPTION_LIST"> 
    <xsl:for-each select="LIGHT_DESCRIPTION"> 
     <xsl:if test="LIGHT_CATEGORY = '17'"> 
      <xsl:text>IRA</xsl:text> 
     </xsl:if> 
    </xsl:for-each> 
</xsl:for-each> 

在輸出我: IRA IRA IRA IRA
我想:如果存在IRA(輕類別= 17只寫一次IRA而沒有重複)

+0

這是幾乎相同的前一個問題(http://stackoverflow.com/questions/21180816/select-distinct-element-into -a-節點XSLT/21181031#21181031)。嘗試閱讀有關XSL密鑰。 –

+0

@Dimitre Novatchev –

回答

1

無論如何,請嘗試下面的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:key name="LD" match="LIGHT_DESCRIPTION" use="."/> 
    <xsl:variable name="Light_Desc" select="//LIGHT_DESCRIPTION"/> 
    <xsl:template match="LIGHT_DESCRIPTION_LIST"> 
     <xsl:for-each select="$Light_Desc[count(. | key('LD', .)[1]) = 1]"> 
      <xsl:if test="LIGHT_CATEGORY = '17'"> 
      <br/> 
      <span style="font-family:Univers Condensed; font-size:9pt; "> 
       <xsl:text>IRA</xsl:text> 
      </span> 
      </xsl:if> 
     </xsl:for-each> 
    </xsl:template> 

</xsl:stylesheet> 

在測試節點內容之前,您必須使用密鑰並消除重複項。

+0

不能很好地工作Joel –

+0

上面的樣式表輸出爲'
IRA'。如果您希望僅將輸出設置爲'IRA',則在樣式表中刪除
標籤。 –

0
<xsl:key name="LD" match="//LIGHT_DESCRIPTION" use="."/> 


<xsl:for-each select="LIGHT_DESCRIPTION_LIST"> 
    <xsl:for-each select="LIGHT_DESCRIPTION"> 
    <xsl:variable name="Light_Desc" select="."/> 
     <xsl:for-each select="$Light_Desc[count(. | key('LD', .)[1]) = 1]"> 
      <xsl:if test="LIGHT_CATEGORY = '17'"> 
      <xsl:text>IRA</xsl:text> 
      </xsl:if> 
     </xsl:for-each> 
    </xsl:for-each> 
</xsl:for-each> 

在輸出該給予:

IRA個人退休賬戶

+0

不要運行得很好:-) –

+0

您應該用'...' >'和''。 –