Xslt 问题:将代码定义为XSL 2.0,但它仍然可以作为XSL 1.0使用

Xslt 问题:将代码定义为XSL 2.0,但它仍然可以作为XSL 1.0使用,xslt,xslt-2.0,Xslt,Xslt 2.0,我希望这是一个愚蠢的用户错误-但是-我有一个应该使用XSL 2.0的XSLT文件-但是,每当我尝试使用XSL 2.0函数时,例如replace(),我都会收到一个错误,说该函数无法识别 System.Xml.Xsl.XsltException:“replace()”是未知的XSLT函数 我将此错误解释为该文件未正确定义或处理为XSL 2.0,但不确定我做错了什么 以下是我如何构建该版本: <?xml version="1.0" encoding="UTF-8" ?> <xsl:

我希望这是一个愚蠢的用户错误-但是-我有一个应该使用XSL 2.0的XSLT文件-但是,每当我尝试使用XSL 2.0函数时,例如replace(),我都会收到一个错误,说该函数无法识别

System.Xml.Xsl.XsltException:“replace()”是未知的XSLT函数

我将此错误解释为该文件未正确定义或处理为XSL 2.0,但不确定我做错了什么

以下是我如何构建该版本:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/1999/xhtml">


只是为了确保有一个答案:您使用的XSLT处理器(System.Xml.Xsl)不支持XSLT 2.0。

只是为了确保有一个答案:您使用的XSLT处理器(System.Xml.Xsl)不支持XSLT 2.0。

您需要使用XSLT 2.0处理器来使用XSLT 2.0,类似于.NET版本的Saxon 9或类似于XmlPrime。Microsoft不支持XSLT 2.0.Sheesh-感谢Microsoft您是否尝试将XSLT 2.0用于replace()或其他增强功能?有些可以直接在XSLT1.0中实现,也可以通过嵌入脚本实现。您需要使用XSLT2.0处理器来使用XSLT2.0,比如.NET版本的Saxon 9或XmlPrime。Microsoft不支持XSLT 2.0.Sheesh-感谢Microsoft您是否尝试将XSLT 2.0用于replace()或其他增强功能?有些可以直接在XSLT1.0中实现,也可以通过嵌入式脚本实现。