Сопоставление образцов с XSLT - PullRequest
2 голосов
/ 09 июня 2010

Я пытаюсь сопоставить шаблон в строку в XSLT / XPath, используя функцию соответствия следующим образом:

<xsl:when test="matches('awesome','awe')">
   ...
</xsl:when>

Однако в Firefox 3.5.9 и IE8 он не отображается. IE8 говорит мне, что «match» не является допустимой функцией XSLT или XPath ». Это связано с тем, что XSLT 2.0 не поддерживается, и есть ли способ обойти это?

Ответы [ 2 ]

3 голосов
/ 09 июня 2010

Регулярные выражения поддерживаются только в XSLT 2.x / XPath 2.x .

На сегодняшний день ни один общедоступный браузер не поддерживает XSLT 2.x / XPath 2.x.

В вашем конкретном случае вы можете использовать :

starts-with('awesome','awe')

другие полезные функции XPath 1.0:

  • contains()

  • substring()

  • substring-before()

  • substring-after()

  • normalize-space()

  • translate()

  • string-length()

0 голосов
/ 09 июня 2010

В дополнение к правильной подсказке о том, что браузеры не поддерживают XSLT / XPath 2.0: обратите внимание, что Firefox (начиная с версии 3.0, я думаю) поддерживает некоторые функции EXSLT, в частности, для регулярных выражений: https://developer.mozilla.org/en/EXSLT#Regular_expressions, то есть с FirefoxВы могли бы рассмотреть функции EXSLT.Для IE, использующего MSXML, вы можете включить http://exslt.org/regexp/functions/match/regexp.match.msxsl.xsl, который реализует функцию соответствия EXSLT с использованием элемента msxsl: script.

...