Tho*_*ulé 2 xslt xpath xslt-1.0
在XSLT 1.0中,如果我有这样的<xsl:variable>
声明:
<xsl:variable name="ListeEcheances">
<bla/><bli/>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
我怎么知道它是否空?甚至更好:我怎么知道它包含多少个标签?(我知道这里有2个标签,但我的真实代码有点复杂:))
<xsl:when test="$ListeEcheances=''">
返回true
(它不计算标签,只计算文本);
<xsl:when test="count($ListeEcheances/*) > 0">
遗憾的是没有编译.
谢谢您的帮助.
这确实是不正确的,你的编译器在抛出错误时是正确的.您只能计算一个节点集,不能计算结果树片段.您需要的是使用扩展函数转换节点集中的变量.
对于Saxon 6.5,这将是exsl:node-set.这适用于Saxon 6.5和任何支持EXSLT节点集功能的处理器(大部分都可以).编辑:Jirka Kosek写下了每个处理器的节点集扩展列表,我敢肯定你的列表.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" xmlns:exsl="http://exslt.org/common">
<xsl:variable name="ListeEcheances">
<bla/><bli/>
</xsl:variable>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="count(exsl:node-set($ListeEcheances)/*) > 0">
<xsl:text>Larger then zero!</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
输出:
<?xml version="1.0" encoding="utf-8"?>Larger then zero!
Run Code Online (Sandbox Code Playgroud)
注意:如果您要使用XSLT 2.0,那么一切都是节点集,并且您不会遇到XSLT 1.0的这种尴尬,其中结果树片段几乎无用.
归档时间: |
|
查看次数: |
915 次 |
最近记录: |