1

我正在尝试通过 node_xslt 模块从 nodejs 使用 EXSLT 节点集函数。这是一个简单的 libxslt 库包装器,它支持 EXSLT,因为我可以得到它。然而,任何对 exsl:node-set 的引用都会产生 Thi,这就是我使用它的方式。

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:exsl="http://exslt.org/common"
                    extension-element-prefixes="exsl">

<xsl:variable name="variable">
  <item />
  <item />
</xsl:variable>

    <xsl:variable name="result" select="exsl:node-set($variable)"/>

任何这是错误:

xmlXPathCompOpEval:未找到函数节点集 XPath 错误:未注册的函数运行时错误:文件 ./JayDataContextGenerator_OData_V2.xslt 第 58 行元素 for-each 无法评估“选择”表达式。

更新:Bahblah,node_xslt 插件的作者已经更新了 github 中的项目,所以上面提到的转换可以毫不费力地执行。

4

1 回答 1

2

终于弄清楚了检查 xsltproc.c,我不得不将以下添加添加到 node_xslt.c

到顶部:

#include <libexslt/exslt.h>
#include <libexslt/exsltconfig.h>

到第 138 行,进入 FUNCTION(transform)

exsltRegisterAll();

扩展 wscript 以便:

obj.lib = ['xml2', 'xslt', 'exslt']

然后我不得不重建 node_xslt

node-waf build

在这个 exsl:node-set() 之后就像魅力一样。

于 2012-07-21T14:48:23.463 回答