XSLT - проверка подстроки - PullRequest
       9

XSLT - проверка подстроки

4 голосов
/ 17 марта 2011

У меня есть две переменные 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) или нет?

1 Ответ

19 голосов
/ 17 марта 2011

Чтобы проверить, содержится ли одна строка в другой, используйте функцию 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...