xml、xsd和xsl之间的关系和使用实例

本文介绍了XML、XSL和XSD的基本概念及应用。通过生动的比喻解释了它们之间的关系,并提供了一个具体的XML与XSL结合使用的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 简单地说,xsl是说明xml如何表达出来的样式文件,而xsd给出xml文件的格式描述

如果说xml是一叠钞票,xsd就是验钞机,看看里面有没有假钞,而xsl是点钞机,看看到底是多少钱。用xml可以不用xsd,就像花钱的时候不一定要验钞一样,但是收钱的人一般是想要验的。而花钱的时候不能不点钞,不点那就不是花钱了,是玩钱。当然了,点钞不一定要用点钞机,也可以用手点。 
  比方不是很恰当。想说明的是,xml(文件里面的东西)是内容,xsd是内容的格式,xsl是处理内容的。

下面是xml和xsl结合的例子

 

product.xml文件的内容如下

<?xml version="1.0"?>  
<?xml:stylesheet type="text/xsl" href="table.xsl"?>  
<PRODUCTDET>  
   <PRODUCT PRODID="P001" CATEGORY="TOY">  
      <DESCRIPTION>SWPI</DESCRIPTION>  
      <COLOR>BLUE</COLOR>  
      <RATE>100</RATE>  
   </PRODUCT>  
      
   <PRODUCT PRODID="P002" CATEGORY="TOY">  
      <DESCRIPTION>SWPI</DESCRIPTION>  
      <COLOR>BLUE</COLOR>  
      <RATE>200</RATE>  
   </PRODUCT>  
   <PRODUCT PRODID="P003" CATEGORY="BOOK">  
      <DESCRIPTION>SWPI</DESCRIPTION>  
      <COLOR>BLUE</COLOR>  
      <RATE>300</RATE>  
   </PRODUCT>  
</PRODUCTDET>  

 table.xsl的内容如下

<?xml version="1.0"?>   
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">   
<xsl:template match="/">   
  <xsl:apply-templates/>   
</xsl:template>   
<xsl:template match="COLOR">   
  <xsl:apply-templates />   
</xsl:template>   
<xsl:template match="COLOR[end()]">   
  <xsl:apply-templates />   
</xsl:template>   
<xsl:template match="text()">   
  <xsl:value-of select="." />   
</xsl:template>   
<xsl:template match="/">   
  <html>   
    <head><title>MY PRO COLL</title></head>   
    <body>   
     <h1>MY PRO COLL</h1>   
     <table border="1">   
        <thead>   
          <th>PRODUCT ID</th>   
          <th>DESCRIPTION</th>   
          <th>CATEGORY</th>   
          <th>COLOR</th>   
        </thead>   
        <TBODY>        
          <xsl:for-each select="PRODUCTDET/PRODUCT[@CATEGORY='TOY']" order-by="@CATEGORY;-number(RATE)">   
           <TR>   
              <TD><xsl:value-of select="@PRODID" /></TD>   
              <TD><xsl:value-of select="DESCRIPTION" /></TD>         
              <TD><xsl:value-of select="@CATEGORY" /></TD>   
              <TD><xsl:apply-templates select="COLOR" /></TD>   
           </TR>   
         </xsl:for-each>             
        </TBODY>   
      </table>   
    </body>   
  </html>   
</xsl:template>   
</xsl:stylesheet> 

 

复制并保存以上两个文件之后,点击product.xml即可以看到显示效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值