一聚教程网:一个值得你收藏的教程网站

热门教程

XSLT递归获取主分类名称列表实例

时间:2022-06-25 16:08:24 编辑:袖梨 来源:一聚教程网

本文是工作中关于XSLT和XML一个小实例的分享

需求:XML抛出一些类主分类和子分类,在不同主分类中子分类有重复出现,每个主分类和子分类以一个记录集的形式输出。现要求筛选出主分类。

1. XML数据:

 代码如下 复制代码

< ?xml version="1.0" encoding="UTF-8" ?>

 
  Carrier
  Damage
 

 
  Carrier
  Delivery problem
 

 
  Carrier
  Documentation
 

 
  Carrier
  Excess
 

 
  Consumer & Office
  Brochures / catalogs
 

 
  Consumer & Office
  Commission/rebate
 

 
  Customer
  Commission/rebate
 

 
  Customer
  Credit/Overdues
 

 
  Customer
  Delivery problem
 

 
  Customer
  Documentation
 

 
  Customer
  Duty exemption
 

 
  Customer
  Excess
 

 
  Customer
  Imco
 

 
  Customer
  Order routing
 

 
  DC
  Excess
 

2. XSLT代码:

 代码如下 复制代码
< ?xml version="1.0" encoding="UTF-8"?>

   
 
   
       
            select="descendant::Row/area">###
       

       
 
       


           
       


   

 
   
   
       
       
 
       
        substring-before($optionsStr, '###'))"/>
       
       
       
       
 
       
       
           
       

 
       
       
           
               
           

       

   

 

主要思路:通过将主分类循环组成一个字符串,再递归地对字符串进行截取2个选项进行比较,若截取到的两个选项不相同,则表示选项不重复,反之则递归循环。直到总的字符串被截取完,再也截取不到选项时就结束递归。具体思路可见代码中注释部分。

最终实现效果:


 
最新答案:
2012.04.23:最新找到了XSLT中的xsl:key和key()方法,可以简单地实现筛选结果:

 代码如下 复制代码

< ?xml version="1.0" encoding="UTF-8"?>

   
 
   
       
           

       

   

热门栏目