gpt4 book ai didi

xslt - XSL 中的小写转换

转载 作者:行者123 更新时间:2023-12-04 16:49:45 25 4
gpt4 key购买 nike

我有一个像

<emps>
<emp id='3432'>
<fname>Jack</fname>
<lname>Dawson</lname>
<emp>
<emp id='1122'>
<fname>Jack</fname>
<lname>Thompson</lname>
<emp>
<emps>

我正在开发一个 web 应用程序,它根据输入的名字搜索这个 xml 并提供一个结果页面。为了实现这一点,我编写了一个 xslt,根据作为名为 srchStr 的变量传递的输入搜索字符串将 XML 转换为 HTML。
<xsl:template match="employees">
<xsl:for-each select="emp[fname=$srchStr]">
<tr>
<xsl:variable name="id">
<xsl:value-of select="@id" />
</xsl:variable>
<td>
<a href='detailSearch.do?id={$id}'>
<xsl:value-of select="fname" />
,
<xsl:value-of select="lname" />
</a>
</td>

</tr>
</xsl:for-each
</xsl:template>

但是用户可以输入大写或小写的名称。那么如何将xml标签fname里面的名字转换成小写进行比较呢?

有人可以放一个代码片段来使用 fn:lower-case在我的 xsl 里面。

最佳答案

要将字符串转换为小写或大写,您可以使用 XPath 1.0 函数 translate :

首先定义小写和大写字母的字母表。注意每对字符的位置需要相同:

<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>

然后你可以转换为大写:
<xsl:value-of select="translate($toconvert,$lcletters,$ucletters)"/>

或小写
<xsl:value-of select="translate($toconvert,$ucletters,$lcletters)"/>

关于xslt - XSL 中的小写转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3053828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com