Как проверить равенство строк без учета регистра в xsl - PullRequest
10 голосов
/ 20 января 2012

У меня есть требование, где мне нужно проверить DB/@dbtype == 'oracle' (без учета регистра).Как я могу это сделать?Вот мой код

<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>

Я подумал о преобразовании его во все строчные / прописные буквы, а затем проверить соответственно, поэтому я использовал ниже

<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?-->

Пожалуйста, помогите мне, как сравнить строки(без учета регистра)

Ответы [ 3 ]

17 голосов
/ 20 января 2012

Точно так же:

<xsl:if test="translate(DB/@dbtype, $smallcase, $uppercase) = 'ORACLE'">
10 голосов
/ 20 января 2012

Ну, если вы используете XSLT 2.0+, тогда вы можете использовать

http://saxonica.com/documentation/functions/intro/lower-case.xml

т.е.

<xsl:if test="lower-case(product/@name)='oracle'">
  something
</xsl:if>
1 голос
/ 20 января 2012
<xsl:if test="translate(product/@name, $smallcase, $uppercase) = translate('Oracle', $smallcase, $uppercase)">
stuff
</xsl:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...