2012-01-20 32 views
10

Tôi có một yêu cầu mà tôi cần phải kiểm tra DB/@dbtype == 'oracle' (phân biệt chữ hoa chữ thường). Làm thế nào tôi có thể làm điều đó? Đây là mã của tôiCách kiểm tra trường hợp bình đẳng chuỗi không nhạy cảm trong xsl

<xsl:choose> 
     <xsl:when test="DB/@dbtype"> 
     <p> 
      <dd> 
      <table border="1"> 
       <tbody> 
       <tr> 
        <th>Name</th> 
        <th>Value</th> 
       </tr> 

       <xsl:if test="DB/@dbtype='ORACLE'"> 
        <xsl:for-each select="DB/oracle_props"> 
        <tr> 
         <td valign="top" ><xsl:value-of select="@name"/></td> 
         <td valign="top" ><xsl:value-of select="@value"/></td> 
        </tr> 
        </xsl:for-each> 
       </xsl:if> 

       </tbody> 
      </table> 
      </dd> 
     </p> 
     </xsl:when> 
     <xsl:otherwise> 
      <xsl:value-of select="DB"/>       
     </xsl:otherwise> 
</xsl:choose> 

Tôi nghĩ đến chuyển đổi nó thành tất cả chữ thường/hoa và sau đó kiểm tra cho phù hợp, vì vậy tôi sử dụng dưới đây

<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> 
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> 

<xsl:value-of select="translate(product/@name, $smallcase, $uppercase)"/> 
<!--It display in lower case, but how to use this in checking for equality?--> 

Xin hãy giúp tôi ra, làm thế nào để so sánh chuỗi (case insensitive cách)

Trả lời

14

Trong cùng một cách:

<xsl:if test="translate(DB/@dbtype, $smallcase, $uppercase) = 'ORACLE'"> 
1
<xsl:if test="translate(product/@name, $smallcase, $uppercase) = translate('Oracle', $smallcase, $uppercase)"> 
stuff 
</xsl:if> 
Các vấn đề liên quan