什么是XML(2)----使用XSL来显示XML文档

来源:互联网 发布:国家电网会计待遇知乎 编辑:程序博客网 时间:2024/05/18 13:43
 

XSLXML的可扩展样式单语言。

XSL (全称是:可扩展的样式单语言,the eXtensible Stylesheet Language)CSS样式单功能要强大的多。XSL的一个主要的用途就是将XML文档转换成HTML格式的文件,然后再交付给浏览器,由浏览器显示转换的结果:

<?xml-stylesheet type="text/xsl" href="simple.xsl"?>

实现如图所示的效果:实现了xml用人们所熟悉的格式表示的转化。

 

Product.asp的源码为:(从数据库中动态的读取数据。)

数据库(auction)的设计:

<%@ Language=VBScript %>

<?xml version="1.0" encoding="GB2312"?>

<?xml-stylesheet href="auction3.xsl" type="text/xsl"?>

<!DOCTYPE 产品目录[

<!ELEMENT 产品目录 ((产品)+)>

<!ELEMENT 产品 (编号,品牌,型号,产品介绍,图片,拍卖结束时间)>

<!ELEMENT 编号 (#PCDATA)>

<!ELEMENT 品牌 (产品品牌,链接拍卖页)>

<!ELEMENT 产品品牌 (#PCDATA)>

<!ELEMENT 型号 (#PCDATA)>

<!ELEMENT 产品介绍 (#PCDATA)>

<!--<!ELEMENT 图片 (产品图片,链接拍卖页)>-->

<!ELEMENT 图片 (产品图片)>

<!ELEMENT 产品图片 (#PCDATA)>

<!ELEMENT 拍卖结束时间 (#PCDATA)>

<!ELEMENT 链接拍卖页 (#PCDATA)>

]>

 

<产品目录>

<% set conn=server.createobject("adodb.connection")

   conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.mappath("auction.mdb")

   set rs=conn.execute("select * from product")

  

   do while not rs.eof

   mystr=rs("产品图片")

   mystr=replace(mystr,"#","")

 

linkstr=rs("编号")

linkstr=cstr(linkstr)

linkstr="showbidding.asp?bianhao="&linkstr

   %>

   <产品>

   <编号><%=rs("编号")%></编号>

   <品牌>

   <产品品牌><%=rs("品牌")%></产品品牌>

   <链接拍卖页><%=linkstr%></链接拍卖页>

   </品牌>

   <型号><%=rs("型号")%></型号>

   <产品介绍><%=rs("产品介绍")%></产品介绍>

   <图片>

   <产品图片><%=mystr%></产品图片>

  <!-- <链接拍卖页><%=mystr%></链接拍卖页>-->

   </图片>

   <拍卖结束时间><%=rs("结束时间")%></拍卖结束时间>

   </产品>

  

   <%

   rs.movenext

   loop

   %>

   </产品目录>

 

Auction3.xsl的源码为:

<?xml version="1.0" encoding="GBK"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

       <xsl:template match="/">

              <html>

                     <body>

                            <xsl:for-each select="产品目录" order-by="编号">

                                   <tr>

                                          <xsl:apply-templates/>

                                   </tr>

                            </xsl:for-each>

                            <table border="1" cellpadding="0">

                                   <tr style="font-size:10pt;color:#800000;" bgcolor="33ccff">

                                          <th>编号</th>

                                          <th>品牌</th>

                                          <th>型号</th>

                                          <th>产品介绍</th>

                                          <th>图片</th>

                                          <th>结束时间</th>

                                   </tr>

                                   <xsl:for-each select="产品目录/产品" order-by="编号">

                                          <tr>

                                                 <xsl:apply-templates/>

                                          </tr>

                                   </xsl:for-each>

                            </table>

                     </body>

              </html>

       </xsl:template>

       <xsl:template match="编号">

              <td width="100" style="font-size:10pt;color:#800000">

                     <center>

                            <xsl:value-of/>

                     </center>

              </td>

       </xsl:template>

       <xsl:template match="品牌">

              <td width="100" style="font-size:10pt;color:#800000">

                     <center>

                            <xsl:element name="A">

                                   <xsl:attribute name="href"><xsl:value-of select="链接拍卖页"/></xsl:attribute>

                                   <xsl:attribute name="target">bottomFrame</xsl:attribute>

                            </xsl:element>

                            <xsl:value-of select="产品品牌"/>

                     </center>

              </td>

       </xsl:template>

       <xsl:template match="型号">

              <td width="100" style="font-size:10pt;color:#800000">

                     <center>

                            <xsl:value-of/>

                     </center>

              </td>

       </xsl:template>

       <xsl:template match="产品介绍">

              <td width="100" style="font-size:10pt;color:#800000">

                     <center>

                            <xsl:value-of/>

                     </center>

              </td>

       </xsl:template>

       <xsl:template match="图片">

              <td width="400" style="font-size:10pt;color:#800000">

                     <center>

                            <img width="400" height="300">

                                   <xsl:attribute name="src"><xsl:value-of/></xsl:attribute>

                            </img>

                     </center>

              </td>

       </xsl:template>

       <xsl:template match="拍卖结束时间">

              <td width="100" style="font-size:10pt;color:#800000">

                     <center>

                            <xsl:value-of/>

                     </center>

              </td>

       </xsl:template>

</xsl:stylesheet>