XSLT变量存储元素计数疑问:counter3变量存储内容解析
关于XSLT变量$counter3存储内容的解析
$counter3变量存储的既不是单个金额数值,也不是计数1,而是XML中所有满足D_Payment_Amount_1 > 0条件的<Record>节点集合。- 你的XPath表达式
Export/Record[D_Payment_Amount_1 > 0]的作用是:从根节点<Export>下筛选出所有子节点<Record>里,<D_Payment_Amount_1>值大于0的那些<Record>节点,把这些节点整体赋值给$counter3。 - 后续代码中的
count($counter3) > 0,是用count()函数统计这个节点集合的节点数量,判断是否存在至少一个符合条件的<Record>——只要数量大于0,就会执行<xsl:if>块内的逻辑。 - 变量名
counter3确实容易造成误解,因为它实际存储的是节点集合而非计数数值。如果要直接存储符合条件的记录数量,应该把变量定义改成:
这样变量里才是符合条件的记录个数。<xsl:variable name="counter3" select="count(Export/Record[D_Payment_Amount_1 > 0])"/>
内容的提问来源于stack exchange,提问作者Greg Gregerson
相关产品推荐
相关产品推荐

