如何解决xslt:Function 中不存在上下文项
我的 xml-pool 就像
<POOL>
<CUSTOMER>
<GROUP_ID>
2
</GROUP_ID>
</CUSTOMER>
</POOL>
我有一个函数调用,看起来像
<xsl:value-of select="nck:serviceNo(' ',' ')"/>
而我的功能是:
<xsl:function name="nck:serviceNo" as="xs:string">
<xsl:param name="spacer1" as="xs:string"/>
<xsl:param name="spacer2" as="xs:string"/>
<xsl:variable name="num">
1010<xsl:value-of select="$spacer1" />2020 3030<xsl:value-of select="$spacer2" />
<xsl:choose>
<xsl:when test="/POOL/CUSTOMER/GROUP_ID = 2" >
10
</xsl:when>
<xsl:otherwise>
0
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:sequence select="$num"/>
</xsl:function>
我的错误是:
在第 31 行 xsl:when/@test 中的表达式中的字符 1 处键入错误 test.xsl 的第 60 列:XPDY0002 前导“/”选择 没有:上下文项不存在期间报告了错误 样式表编译
我需要一个解决方法来提供函数中的池,任何人都可以帮忙
解决方法
添加参数以传入节点,例如<xsl:param name="group-id"/>
并传入例如<xsl:value-of select="nck:serviceNo(' ',' ',/POOL/CUSTOMER/GROUP_ID)"/>
然后你在那里检查 <xsl:when test="$group-id = 2">
或声明一个全局参数或变量,例如<xsl:param name="main-root" select="/"/>
并使用例如<xsl:when test="$main-root/POOL/CUSTOMER/GROUP_ID = 2">
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。