xmlXPathCompOpEval:找不到功能节点集

时间:2018-11-24 07:46:17

标签: xml xslt libxml2 libxslt node-set

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

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

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

//错误
xmlXPathCompOpEval:找不到功能节点集
XPath错误:未注册功能

使用 xsltproc (这是libxslt的命令行版本)以及我的计算机中相同的XML(inputfile)和XSL文件(stylesheetfile),相同的XSLT处理效果良好。工作。

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

1 个答案:

答案 0 :(得分:1)

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

exsltRegisterAll();

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