为什么我的XSLT片段导致错误?

0 xslt

我试图使用下面的代码来检查我的变量是否包含单词NOT_INTERFACED.所以我使用了end-with函数.

但如果确实如此,我想打印剩下的单词减去NOT_INTERFACED.

但我收到一个错误,我的java程序正在调用此模板但是我得到一个异常结束 - 没有找到.

我做错了语法吗?

<xsl:choose>
  <xsl:when test="ends-with($ID_FO, 'NOT_INTERFACED')">
    <xsl:value-of select="substring-before($ID_FO, 'NOT_INTERFACED')"/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:value-of select="$ID_FO"/>
  </xsl:otherwise>
</xsl:choose> 
Run Code Online (Sandbox Code Playgroud)

而错误是

可能无法找到功能结束.LOCATION:未知的
java.lang.NullPointerException

Joh*_*ohn 5

编辑:请参阅下面的评论,

我检查了XPATH 1.0文档,它不包含end-with函数.您将不得不执行我在下面详述的子字符串方法 -​​ 即如果您使用的是XSLT 1.0(使用XPATH 1.0)

编辑2:所以我的评论有一些很好的语法突出显示:

<xsl:when test="substring($ID_FO, string-length($ID_FO)-14) = '_NOT_INTERFACED'">
Run Code Online (Sandbox Code Playgroud)