EXSLT 和 xsltproc 出现错误
我有一个 XSL 文件,它的工作方式就像一个魅力,至少在我想使用 EXSLT 中的正则表达式之前,我做了什么: 添加 :
xmlns:regexp="http://exslt.org/regular-expressions"
extension-element-prefixes="regexp"
并
<xsl:choose>
<xsl:when test="regexp:test(
Location/Politic/@Country,
'Espa.a',
'i'
)"
>ES</xsl:when>
</xsl:choose>
在我的 XSL 中使用了 this: 。这导致以下错误:
xmlXPathCompOpEval: function test not found
XPath error : Unregistered function
xmlXPathCompiledEval: 3 objects left on the stack.
知道我在这里做错了什么,我严格按照说明进行操作
谢谢,
I have an XSL file which works like a charm, at least, until I wanted to use regular expressions from EXSLT, what I did:
added :
xmlns:regexp="http://exslt.org/regular-expressions"
extension-element-prefixes="regexp"
and used this:
<xsl:choose>
<xsl:when test="regexp:test(
Location/Politic/@Country,
'Espa.a',
'i'
)"
>ES</xsl:when>
</xsl:choose>
somewhere in my XSL. this lead to the following error:
xmlXPathCompOpEval: function test not found
XPath error : Unregistered function
xmlXPathCompiledEval: 3 objects left on the stack.
any idea what am I doing wrong in here, I strictly followed the instructions over
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您需要 EXSLT regexp 函数,则必须使用用 python 编写的 4Suite。
Saxon 不知道这个扩展,但它是 XSLT 2.0 处理器,因此您可以使用 fn:matches 而不是 regexp:test。请参阅 http://www.w3.org/TR/xslt20/ 。
另一种方法是定义您自己的扩展函数。
在撒克逊语中:
在 Xalan 中:
http://xml.apache.org/xalan-j/extensions .html
If you need EXSLT regexp functions, you have to use 4Suite written in python.
Saxon doesn't know this extension, but it is XSLT 2.0 processor, so you can use fn:matches instead of regexp:test. See http://www.w3.org/TR/xslt20/ .
Another way is to define your own extension function.
In Saxon:
In Xalan:
http://xml.apache.org/xalan-j/extensions.html