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

XSL-如何从XML创建graphml边缘以与同一作者/演员连接节点?

如何解决《XSL-如何从XML创建graphml边缘以与同一作者/演员连接节点?》经验,为你挑选了1个好方法。

我有一个显示电影列表的XML文件.每部电影都有一些元数据来描述情节,演员,导演等.这是示例结构:


    
    
    1994
    R
    1994 Oct 14
    142 min
    
        Crime
        Drama
    
    
        Name Surname
    
    
        Stephen King (short story 'Rita Hayworth and Shawshank Redemption')
        Frank Darabont (screenplay)
    
    
        Tim Robbins
        Morgan Freeman
        Bob Gunton
        William Sadler
    
    Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.
    
        English
    
    
        USA
    
    Nominated for 7 Oscars. Another 16 wins and 16 nominations.
    http://ia.media-imdb.com/images/M/MV5BODU4MjU4NjIwNl5BMl5BanBnXkFtZTgwMDU2MjEyMDE@._V1_SX300.jpg
    80
    9.3
    1358212
    tt0111161
    movie
    
    
    ...
    
    
    ...
    
    ...

我必须创建一个XSL样式表来将此文件转换为graphml文件,该文件显示actor与电影的关系,其中节点是电影,如果演员出现在连接的电影(节点)中,则存在两个节点之间的边缘.这是一个例子:


    1







...


    2 (number of actors who appear in both "movie title 1" and "movie title 2")

这是列出节点的XSL片段:


             
    
    





提前谢谢你的答案.



1> michael.hor2..:

我不认为你的问题很清楚.如果 - 看起来 - 你想要一个连接电影与同一个演员的图表,那么你应该从一个例子开始,(a)有多部电影,(b)其中一些有相同的演员:

XML


   
      
      
         Adam
         Betty
         Cecil
      
   
   
      
      
         Adam
         Betty
         David
      
   
   
      
      
         Adam
         David
         Eve
      
   
   
      
      
         Cecil
         Eve
      
   
   
      
      
         Frank
         George
      
   

现在,应用以下样式表:

XSLT 1.0







    
        
        
            
                
                
                    
                        
                            
                                
                            
                        
                    
            
        
    



将产生以下结果:



   
   
      
      
         2
      
      
         1
      
      
         1
      
      
      
         2
      
      
         2
      
      
      
         1
      
      
         2
      
      
         1
      
      
      
         1
      
      
         1
      
      
   

这可能是您正在寻找的结果(我找不到GraphML在线查看器,所以我不能确定).

但是,在上图中,每条边出现两次 - 每个方向一次.如果这是一个问题,你可以通过这样做来消除它:

XSLT 1.0


    
        
        
            
                
                
                    
                        
                            
                                
                            
                        
                    
            
        
    



并获得以下结果:



   
   
      
      
         2
      
      
         1
      
      
         1
      
      
      
         2
      
      
      
         1
      
      
      
   


推荐阅读
author-avatar
十字心死_823
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有