热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在XSLTv1.0中排序以获得最大值,一个新问题-SortinginXSLTv1.0toobtainthegreatestvalue,anewquestion

IhaveanXMLdocumentwithseveral<person>elements,eachofwhichcontainsthe<name>

I have an XML document with several elements, each of which contains the of the person, and several elements inside a grouping element.

我有一个带有几个 元素的XML文档,每个元素都包含person的 ,以及分组 元素中的几个 元素。

I already found that to obtain the greatest I have to do an with a inside it and then take the first element, as XSLT v1.0 doesn't have fn:max().

我已经发现要获得最大的 我必须在其中使用 执行 ,然后获取第一个元素,因为XSLT v1.0没有FN:MAX()。

But I guess that this would give me the greatest value from all. So, how could I arrange a stylesheet to extract each person's with their greatest ?

但我想这会给我最大的价值。那么,我怎样才能安排样式表来提取每个人的 及其最大的 ?

2 个解决方案

#1


2  

One can use the "maximum" template as provided by FXSL -- the Functional Programming Library for XSLT. FXSL is written entirely in XSLT itself.

可以使用FXSL提供的“最大”模板 - XSLT的功能编程库。 FXSL完全用XSLT编写。

Here is an example of using the "maximum" template:

以下是使用“最大”模板的示例:

When this transformation:

当这个转变:


   

   

   

     

    
      

      
        
         

      
    

    
         
         

         
          1
          0
         
    

is applied on this XML document:

应用于此XML文档:


  01
  02
  03
  04
  05
  06
  07
  08
  09
  10

the wanted result is obtained.

获得想要的结果。

10

Note, that I can pass any needed "compare" operation as parameter! For example, if my compare operation returns 1 whenever $arg1 <$arg2, then the above transformation will produce "01" -- the minimum of all values.

注意,我可以将任何需要的“比较”操作作为参数传递!例如,如果我的比较操作在$ arg1 <$ arg2时返回1,那么上面的转换将产生“01” - 所有值的最小值。

Now, I will show two solutions for the original problem.

现在,我将针对原始问题展示两种解决方案。

Solution1 (using FXSL's "maximum" template):

   

   

     

      

    
      
       
      
    
    
     
      
        
         

      
     
    

    
         
         

         
          1
          0
         
    

When this transformation is applied on the following XML document:

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


    
        
            8
            10
            4
            12
    
    
        
            2
            11
            15
            6
    
    
        
            10
            44
            9
    

the wanted result is produced:

产生了想要的结果:


   
      12
   
   
      15
   
   
      44
   

Solution2 (using a template written by hand):

When this transformation:

当这个转变:


 

    
     
       
     
    

    
     
      
        
      
     
    

    
      

      
       
        -99999999999999999999
       
       
         

         
          
           
          
          
           

           
             
              
             
           

           
             
              
             
           

           
          
         
       
      
    

is applied on the same XML document, again the correct result is produced:

应用于同一XML文档,再次生成正确的结果:


   12
   15
   44

#2


0  

When it comes to sorting stuff in XSLT 1.0 you have to use a slightly roundabout approach as I recall. If you haven't already you'll want to look into Muenchian grouping to give you some ideas to start with.

在XSLT 1.0中对事物进行排序时,我必须使用稍微迂回的方法。如果你还没有,你会想要考虑Muenchian分组给你一些想法。

I've found this site to be a very useful resource.

我发现这个网站是一个非常有用的资源。


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
author-avatar
君莫笑
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有