如何在xpath表达式中使用名称实现用户定义的函数?

cmf41013

我正在使用XSLT。我知道内联函数表达式,有什么方法可以在xpath表达式中声明命名函数?因为我需要函数名称来实现递归调用。

马丁·洪恩

在XSLT中,我只是建议使用xsl:function这种方式,以便您的函数具有名称,并且可以在函数主体内部递归调用它。

至于纯XPath 3,Dimitre几年前在https://dnovatchev.wordpress.com/2012/10/15/recursion-with-anonymous-inline-functions-in-xpath-3-0-2/中探索了该路径。使用let和更高阶的函数(不幸的是,Saxon 9 HE中不支持该功能),我认为他的代码使用的函数类型语法与最终规范不太一致,因此他的示例需要

let $f := 
    function($n as xs:integer,
             $f1 as function(xs:integer, function(*)) as xs:integer) as xs:integer {
        if ($n eq 0)
        then 1
        else $n * $f1($n -1, $f1)

    },
    $F := function($n as xs:integer) as xs:integer {
        $f($n, $f)
    }
return $F(5)

可以缩短为

let $f := 
    function($n as xs:integer,
             $f1 as function(xs:integer, function(*)) as xs:integer) as xs:integer {
        if ($n eq 0)
        then 1
        else $n * $f1($n -1, $f1)

    },
    $F := $f(?, $f)
return $F(5)

我认为给出了最新允许的语法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在LXML XPath表达式中使用变量

来自分类Dev

如何在Swift中实现用于密码验证的正则表达式?

来自分类Dev

如何在正则表达式函数中使用

来自分类Dev

在SQL用户定义函数中使用公用表表达式时出错

来自分类Dev

在SQL用户定义函数中使用公用表表达式时出错

来自分类Dev

如何在grep中使用正则表达式(仅基本正则表达式)实现替换?

来自分类Dev

使用用户定义的函数作为布尔表达式

来自分类Dev

如何在python lxml,XPath中使用正则表达式

来自分类Dev

如何在XPath“包含”功能中使用正则表达式

来自分类Dev

如何在Mule esb中使用xpath3表达式替换值

来自分类Dev

如何在Java中使用正则表达式实现字符限制?

来自分类Dev

如何在R中使用正则表达式编辑名称?

来自分类Dev

如何在R中使用正则表达式编辑名称?

来自分类Dev

如何在 Pandas 数据框中使用正则表达式拆分名称?

来自分类Dev

如何在 Groovy 中使用正则表达式提取操作系统短名称?

来自分类Dev

如何实现用户定义的热键

来自分类Dev

如何使用 lambda 表达式实现递归函数

来自分类Dev

在 xPath 表达式中使用变量

来自分类Dev

Python正则表达式:如何实现用于检查括号匹配集的正则表达式?

来自分类Dev

如何在自定义格式功能中使用Boost.Log格式表达式

来自分类Dev

如何在Spring Security @ PreAuthorize / @ PostAuthorize批注中使用自定义表达式

来自分类Dev

如何在自定义的编译表达式中使用bindparam()?

来自分类Dev

如何在Haskell的“ let”表达式中使用“ type”定义值?

来自分类Dev

如何在 Python 中使用 lambda 表达式定义属性

来自分类Dev

如何在 Nifi 中使用表达式语言定义 ControllerService

来自分类Dev

如何在names.arg函数中使用表达式

来自分类Dev

如何在Javascript中使用带有函数表达式的变量提升?

来自分类Dev

如果C ++构造函数不返回任何内容,如何在表达式中使用它?

来自分类Dev

我如何在Angularjs的ng-options表达式中使用函数和变量

Related 相关文章

  1. 1

    如何在LXML XPath表达式中使用变量

  2. 2

    如何在Swift中实现用于密码验证的正则表达式?

  3. 3

    如何在正则表达式函数中使用

  4. 4

    在SQL用户定义函数中使用公用表表达式时出错

  5. 5

    在SQL用户定义函数中使用公用表表达式时出错

  6. 6

    如何在grep中使用正则表达式(仅基本正则表达式)实现替换?

  7. 7

    使用用户定义的函数作为布尔表达式

  8. 8

    如何在python lxml,XPath中使用正则表达式

  9. 9

    如何在XPath“包含”功能中使用正则表达式

  10. 10

    如何在Mule esb中使用xpath3表达式替换值

  11. 11

    如何在Java中使用正则表达式实现字符限制?

  12. 12

    如何在R中使用正则表达式编辑名称?

  13. 13

    如何在R中使用正则表达式编辑名称?

  14. 14

    如何在 Pandas 数据框中使用正则表达式拆分名称?

  15. 15

    如何在 Groovy 中使用正则表达式提取操作系统短名称?

  16. 16

    如何实现用户定义的热键

  17. 17

    如何使用 lambda 表达式实现递归函数

  18. 18

    在 xPath 表达式中使用变量

  19. 19

    Python正则表达式:如何实现用于检查括号匹配集的正则表达式?

  20. 20

    如何在自定义格式功能中使用Boost.Log格式表达式

  21. 21

    如何在Spring Security @ PreAuthorize / @ PostAuthorize批注中使用自定义表达式

  22. 22

    如何在自定义的编译表达式中使用bindparam()?

  23. 23

    如何在Haskell的“ let”表达式中使用“ type”定义值?

  24. 24

    如何在 Python 中使用 lambda 表达式定义属性

  25. 25

    如何在 Nifi 中使用表达式语言定义 ControllerService

  26. 26

    如何在names.arg函数中使用表达式

  27. 27

    如何在Javascript中使用带有函数表达式的变量提升?

  28. 28

    如果C ++构造函数不返回任何内容,如何在表达式中使用它?

  29. 29

    我如何在Angularjs的ng-options表达式中使用函数和变量

热门标签

归档