0

我正在为我的程序中的 XSLT 处理实现几个库(libxslt、libxml2、libexslt)。我包含了头文件和 .so 文件以将库链接到程序,并发现链接运行良好。

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

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

//error
xmlXPathCompOpEval : function node-set not found
XPath error : Unregistered function

使用xsltproc(libxslt 的命令行版本)和我的计算机中相同的 XML(输入文件)和 XSL 文件(样式表文件),相同的 XSLT 处理工作得很好,但实现不起作用。

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

4

1 回答 1

2

仅包含标头和链接到相关库并不能启用扩展功能,因为您提到支持它们的 xsltproc,请在https://gitlab.gnome.org/GNOME/libxslt/blob/master/xsltproc上查看它的源代码/xsltproc.c#L803它调用的地方

exsltRegisterAll();

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

于 2018-11-26T06:42:16.003 回答