首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXSLT和xsltproc获取错误

EXSLT和xsltproc获取错误
EN

Stack Overflow用户
提问于 2011-04-25 19:13:21
回答 1查看 3.7K关注 0票数 1

我有一个XSL文件,至少在我想要使用EXSLT的正则表达式之前,它的工作就像一种魅力,我所做的是:

代码语言:javascript
复制
  xmlns:regexp="http://exslt.org/regular-expressions"
  extension-element-prefixes="regexp"

并使用这一方法:

代码语言:javascript
复制
<xsl:choose>
    <xsl:when test="regexp:test(
                       Location/Politic/@Country,
                       'Espa.a',
                       'i'
                    )"
             >ES</xsl:when>
</xsl:choose>

在我的XSL的某个地方。这将导致以下错误:

代码语言:javascript
复制
xmlXPathCompOpEval: function test not found
XPath error : Unregistered function
xmlXPathCompiledEval: 3 objects left on the stack.

如果你知道我在这里做错了什么,我会严格按照指示

http://www.exslt.org/

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2011-08-23 08:36:14

如果需要EXSLT函数,则必须使用用python编写的4 4Suite。Saxon不知道这个扩展,但是它是XSLT2.0处理器,所以您可以使用fn:matches而不是regexp:test。见http://www.w3.org/TR/xslt20/

另一种方法是定义自己的扩展函数。

在撒克逊:

代码语言:javascript
复制
<xsl:stylesheet
    version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:regexp="http://exslt.org/regular-expressions"
    xmlns:fn="http://www.w3.org/2005/xpath-functions"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
    <xsl:function name="regexp:test" as="xs:boolean">
        <xsl:param name="regexp" as="xs:string"/>
        <xsl:param name="str" as="xs:string"/>
        <xsl:sequence select="fn:matches($regexp, $str)"/>
    </xsl:function>

</xsl:stylesheet>

在Xalan:

代码语言:javascript
复制
<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:regexp="http://exslt.org/regular-expressions"
    xmlns:func="http://exslt.org/functions"
    xmlns:java="http://xml.apache.org/xalan/java"
    extension-element-prefixes="func java regexp"
>

    <func:function name="regexp:test">
        <xsl:param name="regexp"/>
        <xsl:param name="str"/>
        <xsl:variable name="testResult" select="java:matches($regexp, $str)"/>
        <func:result select="$testResult"/>
    </func:function>


</xsl:stylesheet>

http://xml.apache.org/xalan-j/extensions.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5782139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档