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

不同的元素和分组

如何解决《不同的元素和分组》经验,为你挑选了2个好方法。

给出以下xml片段:


  
    file1
    desc1
  
  
    file1
    desc2
  
  
    file2
    desc1
  

我需要制作类似的东西


  
    

file1

des1

desc2

file2

des1

我试过用一把钥匙


但我真的不明白如何将它带到下一步,或者这是否是正确的方法.



1> Dimitre Nova..:

这个解决方案比Richard提供的解决方案更简单,更高效,同时更通用:

这种转变:



 

 

    
     
      
      
        

当应用于提供的XML文档时:


    
        file1
        desc1
    
    
        file1
        desc2
    
    
        file2
        desc1
    

产生想要的结果:


   
      

file1

desc1

desc2

file2

desc1

请注意第一个的简单匹配模式以及如何使用秒,我们找到所有" Description"元素,它们File是具有给定值的" "元素的兄弟.

我们可以使用更多的模板而不是拉式处理,但这是一个非常简单的案例,解决方案真正受益于更短,更紧凑和更易读的代码.

另请注意,在XSLT 2.0中,通常会使用指令而不是Muenchian方法.



2> Richard A..:

以下是我使用Muenchean方法的方法.谷歌的'xslt muenchean'来自更聪明的人的更多信息.可能有一种聪明的方式,但我会把它留给别人.

请注意,我避免在xml元素名称的开头使用大写字母,例如'File',但这取决于你.



    
    
    
        
            
                
            
        
    
    
        
            
            

这个想法是,使用它的文本值键入每个File元素.然后仅显示文件值,如果它们与键控的元素相同.要检查它们是否相同,请使用generate-id.有一种类似的方法可以比较匹配的第一个元素.我不能告诉你哪个更有效率.

我已经使用Marrowsoft Xselerator测试了这里的代码,这是我最喜欢的xslt工具,虽然已经不再可用了afaik.我得到的结果是:



file1

desc1

desc2

file2

desc1

这是使用msxml4.

我按文件对输出进行了排序.我不确定你是否想要那个.

我希望这有帮助.

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