XML 学习(七) XSLT 例子

XML 学习(七) XSLT 例子
xslt例子,用到了xslt的元素;xpath
不知道怎么弄连接下载啊,只好把所有代码都贴上来了;
可以把xsl文件里的注释去了看下效果;

测试页面:cd.html
< html >
< body >
< script language = " javascript " >
    
//  Load XML 
     var  xml  =   new  ActiveXObject( " Microsoft.XMLDOM " )
    xml.async 
=   false
    xml.load(
" cd.xml " )

    
//  Load the XSL
     var  xsl  =   new  ActiveXObject( " Microsoft.XMLDOM " )
    xsl.async 
=   false
    xsl.load(
" cd.xsl " )
    document.write(xml.transformNode(xsl))
</ script >
</ body >
</ html >
显示样式 cd.xsl
<? xml version = ' 1.0 ' encoding = " GBK " ?>
< xsl:stylesheet version = " 1.0 "  xmlns:xsl = " http://www.w3.org/1999/XSL/Transform " >
    
< xsl:template match = " / " >
        
< html >
            
< body >
                
< table border = " 2 "  bgcolor = " #dddddd " >
                    
< tr >
                        
< th > Title </ th >
                        
< th > Artist </ th >
                        
< th > Country </ th >
                        
< th > Price </ th >
                    
</ tr >

                    
< xsl: for - each select = " //cd " >   
                    
<!--   < xsl: for - each select = " catalog/cd " >   -->
                    
                        
< xsl:sort select = " title " />
                        
< tr >
                        
                            
< xsl:apply - templates select = " . " />  
                            
<!--   < xsl:apply - templates select = " //cd " />   -->
                            
                        
</ tr >
                    
</ xsl: for - each >
                
</ table >
            
</ body >
        
</ html >
    
</ xsl:template >
    
    
< xsl:template match = " cd " >
             
< td >< xsl:apply - templates select = " ./title " /></ td >
             
<!--   < td >< xsl:apply - templates select = " ../cd/title " /></ td >   -->
             
            
< td >< xsl:apply - templates select = " artist " /></ td >
            
< td >< xsl:apply - templates select = " country " /></ td >
          
< td >< xsl:apply - templates select = " price " /></ td >
    
</ xsl:template >
    
    
< xsl:template match = " title " >
        
< span style = " color:#ff0000 " >
        
< xsl:value - of select = " . " /></ span >
    
</ xsl:template >
    
    
< xsl:template match = " artist " >
        
< span style = " color:#00ff00 " >
        
< xsl:value - of select = " . " /></ span >
    
</ xsl:template >
    
    
< xsl:template match = " country " >
        
< span style = " color:#0000ff " >
        
< xsl:value - of select = " . " /></ span >
    
</ xsl:template >
    
    
< xsl:template match = " price " >
            
< span style = " color:#0000ff " >
                
< xsl:value - of select = " . " />
                
< xsl: if  test = " . &gt; 10 " > 大于10 </ xsl: if >
                
< xsl:choose >
                    
< xsl:when test = " . &lt; 8 " > 小于8 </ xsl:when >
                    
< xsl:otherwise >
                        
< xsl:choose >
                        
<!--  嵌套时  < xsl:otherwise >  不能掉了, & lt后面的分号 -->
                            
< xsl:when test = " . &lt; 9 " > 大于8,小于9 </ xsl:when >
                            
< xsl:otherwise >
                                
< xsl:choose >  
                                    
< xsl:when test = " . &lt; 10 " > 大于9,小于10 </ xsl:when >
                                
</ xsl:choose >
                            
</ xsl:otherwise >
                        
</ xsl:choose >
                    
</ xsl:otherwise >
                
</ xsl:choose >
            
</ span >         
    
</ xsl:template >
    
</ xsl:stylesheet >
数据 cd.xml
<? xml version = " 1.0 "  encoding = " ISO-8859-1 " ?>
<!--  Edited  with  XML Spy v2007 (http: // www.altova.com) -->
< catalog >
    
< cd >
        
< title > Empire Burlesque </ title >
        
< artist > Bob Dylan </ artist >
        
< country > USA </ country >
        
< company > Columbia </ company >
        
< price > 10.90 </ price >
        
< year > 1985 </ year >
    
</ cd >
    
< cd >
        
< title > Hide your heart </ title >
        
< artist > Bonnie Tyler </ artist >
        
< country > UK </ country >
        
< company > CBS Records </ company >
        
< price > 9.90 </ price >
        
< year > 1988 </ year >
    
</ cd >
    
< cd >
        
< title > Greatest Hits </ title >
        
< artist > Dolly Parton </ artist >
        
< country > USA </ country >
        
< company > RCA </ company >
        
< price > 9.90 </ price >
        
< year > 1982 </ year >
    
</ cd >
    
< cd >
        
< title > Still got the blues </ title >
        
< artist > Gary Moore </ artist >
        
< country > UK </ country >
        
< company > Virgin records </ company >
        
< price > 10.20 </ price >
        
< year > 1990 </ year >
    
</ cd >
    
< cd >
        
< title > Eros </ title >
        
< artist > Eros Ramazzotti </ artist >
        
< country > EU </ country >
        
< company > BMG </ company >
        
< price > 9.90 </ price >
        
< year > 1997 </ year >
    
</ cd >
    
< cd >
        
< title > One night only </ title >
        
< artist > Bee Gees </ artist >
        
< country > UK </ country >
        
< company > Polydor </ company >
        
< price > 10.90 </ price >
        
< year > 1998 </ year >
    
</ cd >
    
< cd >
        
< title > Sylvias Mother </ title >
        
< artist > Dr.Hook </ artist >
        
< country > UK </ country >
        
< company > CBS </ company >
        
< price > 8.10 </ price >
        
< year > 1973 </ year >
    
</ cd >
    
< cd >
        
< title > Maggie May </ title >
        
< artist > Rod Stewart </ artist >
        
< country > UK </ country >
        
< company > Pickwick </ company >
        
< price > 8.50 </ price >
        
< year > 1990 </ year >
    
</ cd >
    
< cd >
        
< title > Romanza </ title >
        
< artist > Andrea Bocelli </ artist >
        
< country > EU </ country >
        
< company > Polydor </ company >
        
< price > 10.80 </ price >
        
< year > 1996 </ year >
    
</ cd >
    
< cd >
        
< title > When a man loves a woman </ title >
        
< artist > Percy Sledge </ artist >
        
< country > USA </ country >
        
< company > Atlantic </ company >
        
< price > 8.70 </ price >
        
< year > 1987 </ year >
    
</ cd >
    
< cd >
        
< title > Black angel </ title >
        
< artist > Savage Rose </ artist >
        
< country > EU </ country >
        
< company > Mega </ company >
        
< price > 10.90 </ price >
        
< year > 1995 </ year >
    
</ cd >
    
< cd >
        
< title > 1999  Grammy Nominees </ title >
        
< artist > Many </ artist >
        
< country > USA </ country >
        
< company > Grammy </ company >
        
< price > 10.20 </ price >
        
< year > 1999 </ year >
    
</ cd >
    
< cd >
        
< title > For the good times </ title >
        
< artist > Kenny Rogers </ artist >
        
< country > UK </ country >
        
< company > Mucik Master </ company >
        
< price > 8.70 </ price >
        
< year > 1995 </ year >
    
</ cd >
    
< cd >
        
< title > Big Willie style </ title >
        
< artist > Will Smith </ artist >
        
< country > USA </ country >
        
< company > Columbia </ company >
        
< price > 9.90 </ price >
        
< year > 1997 </ year >
    
</ cd >
    
< cd >
        
< title > Tupelo Honey </ title >
        
< artist > Van Morrison </ artist >
        
< country > UK </ country >
        
< company > Polydor </ company >
        
< price > 8.20 </ price >
        
< year > 1971 </ year >
    
</ cd >
    
< cd >
        
< title > Soulsville </ title >
        
< artist > Jorn Hoel </ artist >
        
< country > Norway </ country >
        
< company > WEA </ company >
        
< price > 7.90 </ price >
        
< year > 1996 </ year >
    
</ cd >
    
< cd >
        
< title > The very best of </ title >
        
< artist > Cat Stevens </ artist >
        
< country > UK </ country >
        
< company > Island </ company >
        
< price > 8.90 </ price >
        
< year > 1990 </ year >
    
</ cd >
    
< cd >
        
< title > Stop </ title >
        
< artist > Sam Brown </ artist >
        
< country > UK </ country >
        
< company > A and M </ company >
        
< price > 8.90 </ price >
        
< year > 1988 </ year >
    
</ cd >
    
< cd >
        
< title > Bridge of Spies </ title >
        
< artist > T`Pau </ artist >
        
< country > UK </ country >
        
< company > Siren </ company >
        
< price > 7.90 </ price >
        
< year > 1987 </ year >
    
</ cd >
    
< cd >
        
< title > Private Dancer </ title >
        
< artist > Tina Turner </ artist >
        
< country > UK </ country >
        
< company > Capitol </ company >
        
< price > 8.90 </ price >
        
< year > 1983 </ year >
    
</ cd >
    
< cd >
        
< title > Midt om natten </ title >
        
< artist > Kim Larsen </ artist >
        
< country > EU </ country >
        
< company > Medley </ company >
        
< price > 7.80 </ price >
        
< year > 1983 </ year >
    
</ cd >
    
< cd >
        
< title > Pavarotti Gala Concert </ title >
        
< artist > Luciano Pavarotti </ artist >
        
< country > UK </ country >
        
< company > DECCA </ company >
        
< price > 9.90 </ price >
        
< year > 1991 </ year >
    
</ cd >
    
< cd >
        
< title > The dock of the bay </ title >
        
< artist > Otis Redding </ artist >
        
< country > USA </ country >
        
< company > Atlantic </ company >
        
< price > 7.90 </ price >
        
< year > 1987 </ year >
    
</ cd >
    
< cd >
        
< title > Picture book </ title >
        
< artist > Simply Red </ artist >
        
< country > EU </ country >
        
< company > Elektra </ company >
        
< price > 7.20 </ price >
        
< year > 1985 </ year >
    
</ cd >
    
< cd >
        
< title > Red </ title >
        
< artist > The Communards </ artist >
        
< country > UK </ country >
        
< company > London </ company >
        
< price > 7.80 </ price >
        
< year > 1987 </ year >
    
</ cd >
    
< cd >
        
< title > Unchain my heart </ title >
        
< artist > Joe Cocker </ artist >
        
< country > USA </ country >
        
< company > EMI </ company >
        
< price > 8.20 </ price >
        
< year > 1987 </ year >
    
</ cd >
</ catalog >


你可能感兴趣的:(XML 学习(七) XSLT 例子)