XML简明教程(四)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 junge847 的 blog

四、xslt简介

    了解xml的基本语法、schema的语法还远远不够,xml是对数据和数据结构的存储,而schema是对xml数据类型的定义。直到这

里还没有对xml数据的显示进行处理。虽然可以通过内置有xml解析器的浏览器直接对xml数据进行查看,但毕竟看到的只是以树状结构

显示的xml数据。

    如果要把xml数据以漂亮的形式显示出来就需要xslt帮忙了。xslt可以把xml处理成html形式输出、wap形式输出,甚至也可以

是word文档的格式。其中最常用到的还是html的格式,下面讲解中用到的所有例子都以html的转换格式为例子。那就不说废话了,还

是先看一个xslt的例子吧!

   这个xslt用到的一个xml文档,文档如下:

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

  <?xml:stylesheet type="text/xsl" href="s_xlt.xslt"?>

   <resumes>

   <resume>

   <name>张立东</name>

   <sex>男</sex>

   <age>28</age>

   <birthday>

   <year>1974</year>

   <month>8</month>

   <day>10</day>

   </birthday>

   <address>北京市 海淀区</address>

    </resume>

   <resume>

   <name>张三</name>

   <sex>男</sex>

   <age>50</age>

   <birthday>

   <year>1951</year>

   <month>6</month>

    <day>9</day>

   </birthday>

   <address>山西省</address>

   </resume>

   <resume>

   <name>李四</name>

   <sex>男</sex>

    <age>29</age>

   <birthday>

   <year>1973</year>

    <month>7</month>

    <day>12</day>

   </birthday>

    <address>山东省</address>

   </resume>

  </resumes>

   注:在上面的xml文档中多了下面的一句:

  <?xml:stylesheet type="text/xsl" href="s_xlt.xslt"?>

    这一句就是对xslt的引用,其中href中的内容是对具体xslt文档位置的指定,有关s_xlt.xslt中的内容就是下面要介绍的xsl

t例子的内容。有关如何对xml,xlst、schema的使用和测试,可以参考“一个应用了xml、schema和xlst的例子”部分。

   对这个xml文档进行转换处理的xslt文档如下:

  [1]<?xml version="1.0" encoding="gb2312"?>

  [2]<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/tr/wd-xsl">

  [3] <xsl:template match="/">

  [4] <html>

  [5] <head>

  [6] <title>个人简历</title>

  [7] </head>

  [8] <body>

  [9] <xsl:for-each select="/resumes/resume">

  [10] <p>

  [11] <table border="1" >

  [12] <caption style="font-size: 150%; font-weight: bold">

  [13] 个人简历

  [14] </caption>

  [15] <tr>

  [16] <th>姓名</th><td><xsl:value-of select="name"/></td>

  [17] <th>性别</th><td><xsl:value-of select="sex"/></td>

  [18] <th>生日</th><td><xsl:value-of select="birthday/year"/>年

  <xsl:value-of select="birthday/month"/>月<xsl:value-of select="birthday/day"/>日</td>

  [19] </tr>

  [20] <tr>

  [21] <th>地址</th><td colspan="5"><xsl:value-of select="address"/></td>

  [22] </tr>

  [23] </table>

  [24] </xsl:for-each>

  [25] </body>

  [26] </html>

  [27] </xsl:template>

  [28]</xsl:stylesheet>

   [1]xml的序言,从第一条语句可以看出xslt也是符合xml语法的。

   [2]xslt的名域。xsl:stylesheet是xslt的根元素,xsl是xslt的名域标识。所以都要在xslt的语句前面加上xsl:来表明是xslt

的语句。

   [3] <xsl:template match="/"> 是xslt语言的匹配模式,主要是和引用它的xml文档的根进行匹配。其中/是代表xml文档根的含

义。 例如:个人简介中的name可以用/resumes/resume/name 

的方式进行引用。(由于这里只是对xslt入门的一个初步介绍,对有关xml路径想详细了解的读者可以参考xml文档的xpath部分。)

   [4]-[8]可以直接输出,这部分是符合html语法的信息结构,html文档的开始部分和head的定义。

   [9] <xsl:for-each select="/resumes/resume">是xslt语言的选择模式,是循环的对所有的/resumes/resume元素和这个元素所

包含的子元素进行处理。

   [10]-[15] 可以直接输出,符合html的语法结构。

   [16] <th>姓名</th><td><xsl:value-of select="name"/></td> 

在这一行中有html的语句和也有xslt的语句。其中<xsl:value-of select="name"/>也是属于选择模式的语句,可以直接把select选中

的元素内容提取处理,处理以后的结果应该是:<th>姓名</th><td>张立东</td>。

本文关键:XML简明教程(四)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top