gpt4 book ai didi

xslt - 我怎么知道 xsl :variable contains? 有多少标签

转载 作者:行者123 更新时间:2023-12-03 15:58:25 25 4
gpt4 key购买 nike

在 XSLT 1.0 中,如果我有一个 <xsl:variable>像这样声明:

<xsl:variable name="ListeEcheances">
<bla/><bli/>
</xsl:variable>

我怎么知道它是否为空?或者更好:我怎么知道它包含多少个标签? (我知道这里有 2 个标签,但我的真实代码有点复杂 :))

<xsl:when test="$ListeEcheances=''">返回 true (它不计算标签,只计算文本);

<xsl:when test="count($ListeEcheances/*) > 0">遗憾的是无法编译。

感谢您的帮助。

最佳答案

这确实不正确,您的编译器抛出错误是正确的。只能算一个节点集,你cannot count a result tree fragment .您需要的是使用扩展函数转换节点集中的变量。

对于 Saxon 6.5,这将是 exsl:node-set。这适用于 Saxon 6.5 和任何支持 EXSLT node-set 的处理器。功能(大多数)。编辑:Jirka Kosek 写下了 node-set extensions per processor 的列表,我确定您的在列表中。

<?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>

输出:

<?xml version="1.0" encoding="utf-8"?>Larger then zero!

注意:如果您使用 XSLT 2.0,一切都是节点集,您不会遇到 XSLT 1.0 的这种尴尬,结果树片段几乎无用。

关于xslt - 我怎么知道 xsl :variable contains? 有多少标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9921040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com