我有两个 XSLT 变量,如下所示:
<xsl:variable name="staticBaseUrl" select="'https://www.hello.com/htapi/PrintApp.asmx/getGames?contentId=id_sudoku&uniqueId="123456"&pageformat=a4'" />
<xsl:variable name="dynamicUrl" select="'https://www.hello.com/htapi/PrintApp.asmx/getGames'" />
如何检查第二个字符串(dynamicUrl)是否是第一个字符串(staticBaseUrl)的子字符串?
最佳答案
要检查一个字符串是否包含在另一个字符串中,请使用 contains
功能。
例子:
<xsl:if test="contains($staticBaseUrl,$dynamicUrl)">
<xsl:text>Yes!</xsl:text>
</xsl:if>
更新:
对于不区分大小写的包含,您需要先将两个字符串转换为相同的大小写,然后再调用
contains
.在 XSLT 2.0 中,您可以使用 upper-case
函数,但在 XSLT 1.0 中,您可以使用以下内容:<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:template match="/">
<xsl:if
test="contains(translate($staticBaseUrl,$smallcase,$uppercase), translate($dynamicUrl,$smallcase,$uppercase))">
<xsl:text>Yes!</xsl:text>
</xsl:if>
</xsl:template>
关于XSLT - 检查子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336954/