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

乘以2个数字然后求和

如何解决《乘以2个数字然后求和》经验,为你挑选了1个好方法。

我正在努力做一些似乎应该很容易做的事情.我基本上想要在一个节点中乘以2个数字,然后将所有节点的总数加起来.这是我尝试过的XSLT代码.


此代码导致出现"函数和的参数1无法转换为节点集"的错误.

有没有人知道什么是错的或我怎么能完成我想要做的事情?



1> Dimitre Nova..:

这有三种可能的解决方案:

Solution1 XSLT2:

 

    
      
    

将此转换应用于以下XML文档时:


  
        0.37
    10
  
  
        0.03
    10
  

产生了想要的结果:

4

XSLT 2.0解决方案使用的是,在实际上的XPath 2.0是允许的最后一个"/"运算符的右参数可以是一个表达式或一般的功能.此表达式/函数应用于到目前为止所选择的每个节点充当上下文节点,并且每个函数应用程序生成一个结果.

Solution2 XSLT 1.0:

 

    
      
        
      
    

    
        
        

        
          
            

            
              
              
            
          
          
            
          
        
    

应用于上述XML文档时,会生成正确的结果:

4

这是典型的XSLT 1.0递归解决方案.请注意sumProducts模板如何递归调用自身,直到$pList处理完参数传递的整个输入列表.

Solution3 FXSL(XSLT 1.0):

   
   
   

   

   

   

   
     
     
         
         
           
           
         
     

     
      
        
      
   

    
      

      
        
      
    

将此转换应用于以下XML文档时:


  
    3.5
    2
    0.75
    0.80
    0.90
  
  
    3.5
    2
    0.75
    0.80
    0.90
  

产生了正确的结果:

7.5600000000000005

在每个最后一种情况下sale,我们计算的产品price,quantity以及所有可用的(可变数量的)discount-s.

FXSL 是高阶函数的纯XSLT实现.在此示例中,高阶函数f:map()用于f:product()在每个sale元素的子元素列表上映射函数.然后将结果相加以产生最终结果.

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