我正在使用Umbro4.5.2创建一些xslt,我想从EXSLT.org (http://www.exslt.org/set/functions/distinct/index.html)中添加de set:distinct函数(http://www.exslt.org/set/functions/distinct/index.html),但是,当我引用set:distinct时,我得到了错误:
System.Xml.Xsl.XslTransformException:找不到与名称空间的http://exslt.org/sets'相关联的脚本或扩展对象。
我在xslt中添加了文件、扩展名和名称空间,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:exsl="http://exslt.org/functions"
xmlns:set="http://exslt.org/sets"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"
exclude-result-prefixes="exsl msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets ">
<xsl:import href="set.xsl" />是我遗漏了什么,还是Umbraco抛出了错误,还是某个地方发生了一些底层网络错误(如果是,我如何找出)?
蒂娅!
发布于 2010-10-26 13:02:20
Umbraco框架已经包含了Exslt.Sets实现,因此您不需要像上面那样添加对它的进一步引用。您可以在上面的代码中看到对Umbraco实现的引用,如下所示:
xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"移除线条:
xmlns:exsl="http://exslt.org/functions"
xmlns:set="http://exslt.org/sets" 并使用Exslt.ExsltSets:distinct()。
发布于 2010-10-07 12:47:42
EXSLT不是由两个.NET XSLT处理器:XslCompiledTransform和(过时的) XslTransform本地实现的。
有用于.NET的EXSLT的第三方实现,例如MVPXML项目中的EXSLT。您需要从这里获取它,并将其安装在执行XSLT转换的系统上。
--您还可以始终使用纯XSLT1.0 门窗法 ( XSLT标记中有许多问题,其中包含演示Muenchian分组的答案),如果您的xslt代码应该是可移植的,以便与尽可能多的兼容XSLT1.0处理器一起运行,这是更好的选择。
https://stackoverflow.com/questions/3879416
复制相似问题