xsl使用随笔

最近开发中,为啦满足开发webservic调用的需要,将业务对象序列化成web服务所定义的XML格式,但是同时又希望不在程序里面做过多的业务处理来重组数据,在同事的指点下,使用外部定义的XSL来格式序列化后的业务对象,碰到好多问题,随手写下,以备回顾:
1.碰到带同名子节点的数据时,用xsl:for_each 直接取节点名无法取得,如:
< YMXX >
  
< YM > abc </ YM >  
  
< YM > bcd </ YM >  
  
< YM > adf </ YM >  
</ YMXX >
  xsl代码:
   < YM_xx >
< xsl:for-each  select ="YM" >
     
< YM >< xsl:value-of  select ="YM" /></ YM >  
</ xsl:for-each >
</ YM_xx >                     
结果无法出数据,将循环的select改成根节点也无法解决.几经周折,正确如下:
< xsl:apply-templates  select ="YMXX"   />

< xsl:template  match ="YMXX" >
  
< xsl:for-each  select ="YM" >
    
< YM >< xsl:value-of  select ="text()" /></ YM >
  
</ xsl:for-each >
</ xsl:template >
另外发现,使用循环取节点时,如果父节点中有多级子节点,而且有同名的时候,一定要把级联关系在select中标明:

你可能感兴趣的:(XSL)