Xsltproc не распознает XSLT 2.0

У меня есть этот XSLT syltesheet:

<?xml version="1.0"?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" />
  <xsl:strip-space elements="*" />

  <!-- Default behavior: copy everything -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()" />
    </xsl:copy>
  </xsl:template>

  <!-- Do not copy: -->
  <xsl:template match="NodeLevel1[matches(NodeLevel2/@Param1, 'myRegex')]">
  </xsl:template>
</xsl:stylesheet>

Итак, я хочу скопировать все, кроме определенных узлов, на основе выражения регулярного выражения. И я хочу использовать функцию совпадений XSLT 2 для достижения этой цели. Но когда я запускаю следующую команду:

xsltproc.exe style.xsl input.xml > output.xml

Я получил это сообщение на стандартном выходе:

xmlXPathCompOpEval: function matches not found
XPath error : Unregistered function
xmlXPathCompiledEval: 1 object left on the stack

Как это исправить?

Большое спасибо.

Ответ 1

Вам нужно будет использовать процессор XSLT 2.0, такой как Saxon 9 или другие параметры, перечисленные в fooobar.com/info/tagged/..., xsltproc - это процессор XSLT 1.0.