2013-09-26 71 views
0

我試圖做一個XSL轉換來獲取XML的一些值,看起來像這樣:使用XSL轉換「或」條件

<FOO_CODE>ACPRE</FOO_CODE> 
<FOO_SCORE>100</FOO_SCORE> 

但是,它有可能是FOO_CODE將是不同的每個不同的XML文件,所以我想在XSL轉換中使用'或'語句。我的XSL是這樣的:

<xsl:for-each select="FOO_CODE"> 
        <xsl:choose> 
         <xsl:when test=". ='ACPRE or FEPRE or ECGRE'"> 
         <NEW_FOO_CODE>ACPRE</NEW_FOO_CODE> 
         <NEW_FOO_SCORE>100</NEW_FOO_SCORE> 
         </xsl:when> 
        </xsl:choose> 
       </xsl:for-each> 

的「或」條件似乎沒有奏效,雖然它的運行當,轉型不會將任何數據填充到新節點。當我刪除'或'條件並只測試特定XML文件中的值時,它確實起作用。

任何人都可以建議我做錯了什麼?

回答

2

試試這個:

<xsl:for-each select="FOO_CODE"> 
    <xsl:choose> 
     <xsl:when test="(.='ACPRE') or (.='FEPRE') or (.='ECGRE')"> 
     <NEW_FOO_CODE>ACPRE</NEW_FOO_CODE> 
     <NEW_FOO_SCORE>100</NEW_FOO_SCORE> 
     </xsl:when> 
    </xsl:choose> 
    </xsl:for-each> 

不能提供值單引號內進行比較。這將被視爲正常值而不是操作員。它不會被視爲運營商,而是價值。