你如何在Umbraco中使用Exslt.dyn(尤其是'evaluate'方法)?

时间:2010-12-31 19:02:47

标签: xslt umbraco exslt

我正在尝试执行XSL变量中包含的字符串。

Umbraco有几个Exslt片段的钩子,但似乎Exslt.dyn(Exslt.dynamic)不是其中之一。

如何添加?可接受的方法(按优先顺序排列:

  1. 编写自己的XSLT扩展(可能使用Exslt Dynamic的现有Umbraco代码)。
  2. 将XSL从http://www.exslt.org/dyn/functions/evaluate/index.html上传到Umbraco。
  3. 修改Umbraco源以添加它(可能使用Exslt Dynamic的现有Umbraco代码)。
  4. 我提到Exslt Dyanmic的原因是因为一些Umbraco XSLT源显示了我假设存在于某些版本的Umbraco中的引用。但是,我在源代码中找不到它。 (示例:粘贴在此处的XSL源:http://our.umbraco.org/projects/starter-kits/business-website-starter-pack/general-%28bugs,-feedback,-feature-requests%29/8085-Changing-the-first-day-to-fx-monday

2 个答案:

答案 0 :(得分:1)

很少有XSLT处理器实现dyn:evaluate() ,而Umbraco显然不会使用其中一种。

在这种情况下你无能为力。

要求Umbraco开发人员在将来合并一个XSLT 2.0处理器 - XSLT 2.0有一个 native <xsl:function>指令,用于定义可在任何XPath表达式中引用的函数。

答案 1 :(得分:0)

不确定这是否可行,但如果在XSLT的.Net实现中支持Exslt.ExsltDynamic,则应该可行。在样式表中添加命名空间xmlns:Exslt.ExsltDynamic =“urn:Exslt.ExsltDynamic”(如您链接的示例中),并在exclude-result-prefixes属性中添加Exslt.ExsltDynamic以使其在xslt文件中可访问。 / p>

然后你可以在你的模板中做一些事情。