Record Count与Culmulative Maximum在计算元素总个数上的局限性
Posted on 2007-04-08 14:01 鸡尾虾的壳 阅读(408) 评论(0) 编辑 收藏 举报
经常有计算当前节点在当前父节点中出现的总个数的需求。
刚开始的时候从名字上看以为Record Count Functoid可以解决问题。结果后来测试发现,它会统计document中所有特定元素的出现次数。不满足我们的需求。
如果元素中存在一个seq的属性,那么结合Culmulative Maximum中Scope参数也许可以解决我们的问题。测试发现,如果满足Culmulative Maximum Scope的instance有n个,那么target元素也会出现多次。不满足要求。
如果存在seq属性,假设当前元素最多出现10次。那么用index去第1,2...10个index的值。用一个C# Script取这10个seq的index值中的最大值(如果第i个节点不存在,那么对应index的值为string.Empty),就可以得到节点总个数了。这个方法是由Team Leader Stephen想出来的,非常有创意。
最后一种方法,使用XSLT Template。
鸡尾虾的壳
刚开始的时候从名字上看以为Record Count Functoid可以解决问题。结果后来测试发现,它会统计document中所有特定元素的出现次数。不满足我们的需求。
如果元素中存在一个seq的属性,那么结合Culmulative Maximum中Scope参数也许可以解决我们的问题。测试发现,如果满足Culmulative Maximum Scope的instance有n个,那么target元素也会出现多次。不满足要求。
如果存在seq属性,假设当前元素最多出现10次。那么用index去第1,2...10个index的值。用一个C# Script取这10个seq的index值中的最大值(如果第i个节点不存在,那么对应index的值为string.Empty),就可以得到节点总个数了。这个方法是由Team Leader Stephen想出来的,非常有创意。
最后一种方法,使用XSLT Template。
鸡尾虾的壳