当前位置:  开发笔记 > 前端 > 正文

xsl:for-each循环计数器

如何解决《xsl:for-each循环计数器》经验,为你挑选了1个好方法。

如何保存xsl:for-each中发生的迭代?(XSL中的变量是不可变的)

我的目标是找到特定级别的任何节点的MAX子节点数.

例如,我可能希望打印出此调查中任何问题的响应节点不超过2个:




  
    
    
  
  
    
  





  
  
  
  
    
      The survey has  questions.  
      
0 No more than responses were returned for any question.

Dimitre Nova.. 10

一个不"保存在xsl:for-each中发生的迭代",因为XSLT是一种函数式语言,变量是不可变的.

以下转换找到所需的最大值:


 

    
      
        
      
    

    
      

      

      
        
          
        
        
          

          
           
            
           
          

          
           
            
           
          

          
        
      
    

应用于提供的XML文档时:


    
        
        
    
    
        
    

产生了想要的结果:

2

请注意以下几点:命名模板 " maximum"递归调用自己,并实现DVC(分而治之的原则) 的递归堆栈深度最小化.节点列表被分成两部分,两个列表的最大值被计算(递归地),并且返回两者中较大的一个.



1> Dimitre Nova..:

一个不"保存在xsl:for-each中发生的迭代",因为XSLT是一种函数式语言,变量是不可变的.

以下转换找到所需的最大值:


 

    
      
        
      
    

    
      

      

      
        
          
        
        
          

          
           
            
           
          

          
           
            
           
          

          
        
      
    

应用于提供的XML文档时:


    
        
        
    
    
        
    

产生了想要的结果:

2

请注意以下几点:命名模板 " maximum"递归调用自己,并实现DVC(分而治之的原则) 的递归堆栈深度最小化.节点列表被分成两部分,两个列表的最大值被计算(递归地),并且返回两者中较大的一个.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有