我有一个要求,我需要检查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?-->
请帮帮我,如何比较String(不区分大小写的方式)
答案 0 :(得分:17)
以同样的方式:
<xsl:if test="translate(DB/@dbtype, $smallcase, $uppercase) = 'ORACLE'">
答案 1 :(得分:10)
如果您使用的是XSLT 2.0+,那么您可以使用
http://saxonica.com/documentation/functions/intro/lower-case.xml
即。
<xsl:if test="lower-case(product/@name)='oracle'">
something
</xsl:if>
答案 2 :(得分:1)
<xsl:if test="translate(product/@name, $smallcase, $uppercase) = translate('Oracle', $smallcase, $uppercase)">
stuff
</xsl:if>