xmlXPathCompOpEval:找不到函数节点集

xmlXPathCompOpEval: function node-set not found

我正在实施几个库(libxslt、libxml2、libexslt) 用于我程序中的 XSLT 处理。我将头文件和 .so 文件包含到程序的 link 库中,发现 linking 运行良好。

下面是在我的程序中使用库的一些函数实现XSLT处理的代码,结果前两行运行良好,但在最后一行产生了错误。

style=xsltParseStylesheetFile(stylesheetfile);
input=xmlParseFile(inputfile);
output=xsltApplyStylesheet(style, input,0); //error

//错误
xmlXPathCompOpEval:未找到函数节点集
XPath 错误:未注册的函数

相同的 XSLT 处理使用 xsltproc 效果很好,它是 libxslt 的命令行版本和相同的 XML(inputfile) 和 XSL 文件(stylesheetfile)我的电脑,但是实现不工作。

我知道节点集函数在 libexslt 中。 但为什么它不起作用? 是图书馆的linking问题吗?特别是 libexslt? 或配置? 你们知道这个错误的任何解决方案吗? 非常感谢您的帮助。 谢谢。

包含 headers 并单独链接到相关库并不能启用扩展功能,因为你提到支持它们的 xsltproc 请在 https://gitlab.gnome.org/GNOME/libxslt/blob/master/xsltproc/xsltproc.c#L803 处查看它的源代码,它调用

exsltRegisterAll();

分别启用向 XSLT 处理器注册所有 EXSLT 扩展函数。