简体   繁体   English

您如何在Umbraco中使用Exslt.dyn(尤其是“评估”方法)?

[英]How do you use Exslt.dyn (especially the 'evaluate' method) in Umbraco?

I am trying to execute the string contained in an XSL variable. 我正在尝试执行XSL变量中包含的字符串。

Umbraco has hooks for several Exslt pieces, but it seems the Exslt.dyn (Exslt.dynamic) is not one of them. Umbraco的多个Exslt件都有钩子,但Exslt.dyn(Exslt.dynamic)似乎不是其中之一。

How do you add it in? 如何添加它? Acceptable methods (in order of preference: 可接受的方法(按优先顺序:

  1. Writing your own XSLT extension (possibly using existing Umbraco code for Exslt Dynamic). 编写自己的XSLT扩展名(可能使用现有的Umbraco代码进行Exslt Dynamic开发)。
  2. Uploading the XSL from http://www.exslt.org/dyn/functions/evaluate/index.html into Umbraco. 将XSL从http://www.exslt.org/dyn/functions/evaluate/index.html上传到Umbraco。
  3. Modifying the Umbraco source to add it (possibly using existing Umbraco code for Exslt Dynamic). 修改Umbraco源以添加它(可能使用现有的Umbraco Exslt Dynamic代码)。

The reason I mention Exslt Dyanmic is because some Umbraco XSLT sources show a reference that I am assuming existing in some versions of Umbraco. 我之所以提到Exslt Dyanmic,是因为某些Umbraco XSLT资料来源显示了我假定存在于某些Umbraco版本中的参考。 I cannot find it in the source code, however. 但是,我在源代码中找不到它。 (Example: the XSL sources pasted in here: 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 ) (示例:XSL源粘贴在这里: http : //our.umbraco.org/projects/starter-kits/business-website-starter-pack/general-%28bugs、-feedback、-feature-requests%29/8085 -将第一天更改为FX星期一

Very few XSLT processors implement dyn:evaluate() and Umbraco obviously doesn't use one of these. 很少有XSLT处理器实现dyn:evaluate()而Umbraco显然不使用其中之一。

There isn't anything you can do in this case. 在这种情况下,您无能为力。

Ask the Umbraco developers to incorporate an XSLT 2.0 processor in the future -- XSLT 2.0 has a native <xsl:function> instruction for defining functions that can be referenced in any XPath expression. 要求Umbraco开发人员将来集成XSLT 2.0处理器-XSLT 2.0具有本机 <xsl:function>指令,用于定义可在任何XPath表达式中引用的函数。

Not sure if this will work, but if Exslt.ExsltDynamic is supported out of the box in the .Net implementation of XSLT, this should work. 不知道这是否行得通,但是如果在XSLT的.Net实现中开箱即用地支持Exslt.ExsltDynamic,这应该行得通。 In your stylesheet add the namespace xmlns:Exslt.ExsltDynamic="urn:Exslt.ExsltDynamic" (as in the example you linked) and in the exclude-result-prefixes property add Exslt.ExsltDynamic to make it accessible in your xslt file. 在样式表中,添加名称空间xmlns:Exslt.ExsltDynamic =“ urn:Exslt.ExsltDynamic”(在您链接的示例中),并在exclude-result-prefixes属性中添加Exslt.ExsltDynamic,以使其可在xslt文件中访问。

Then you can just do something like in your template. 然后,您可以在模板中执行类似的操作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM