本站已年久失修,技术交流可以移步到 https://blog.pyzy.net
  所在位置:杂记 >> XML >> xsl+xml简单实例及实用性分析
xsl+xml简单实例及实用性分析
发表于 十三年前(2009-3-2 16:25:27) | 阅读 (1518) | 评论 (0)
XML文件:
 1 <?xml version="1.0" encoding="utf-8"?> 
 2 <?xml-stylesheet type='text/xsl' href='XSLTFile1.xslt'?> 
 3 <Order> 
 4   <OrderID>OrderID1</OrderID> 
 5   <OrderDate>OrderDate1</OrderDate> 
 6   <list> 
 7     <ProductID>ProductID1</ProductID> 
 8     <ProductName>ProductName1</ProductName> 
 9   </list> 
10   <list> 
11     <ProductID>ProductID2</ProductID> 
12     <ProductName>ProductName2</ProductName> 
13   </list> 
14   <list> 
15     <ProductID>ProductID3</ProductID> 
16     <ProductName>ProductName3</ProductName> 
17   </list> 
18   <list> 
19     <ProductID>ProductID4</ProductID> 
20     <ProductName>ProductName4</ProductName> 
21   </list> 
22 </Order>
xslt文件:
 1 <?xml version="1.0" encoding="UTF-8" ?> 
 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 3     <xsl:template match ="Order">
 4         <html dir="">
 5             <head>
 6             <title> 
 7             </title>
 8             </head>
 9             <body>
10                 <table width="100%" border="0">
11                     <tr>
12                         <td colspan="6">
13                             <div align="center">公司名称入库单</div>
14                         </td>
15                     </tr>
16                     <tr>
17                         <td colspan="6">
18                             <div align="right"></div>
19                         </td>
20                     </tr>
21                     <tr>
22                         <td width="130">供应商编号:</td>
23                         <td width="126">
24                         </td>
25                         <td width="100">订单号:</td>
26                         <td width="97">
27                             <xsl:value-of select ="OrderID"/>
28                         </td>
29                         <td width="110">订单日期:</td>
30                         <td width="110">
31                             <xsl:value-of select ="OrderDate"/>
32                         </td>
33                     </tr>
34                     <tr>
35                         <td colspan="6">
36                             <table width="100%" border="0">
37                             <tr>
38                                 <td>产品号</td>
39                                 <td>商品名称</td>
40                             </tr>
41                             <xsl:apply-templates select ="list"/>
42                             </table>
43                         </td>
44                     </tr>
45                 </table>
46             </body>
47         </html>
48     </xsl:template> 
49     
50     <xsl:template  match="list">
51         <tr>
52             <td>
53                 <xsl:value-of select ="ProductID"/>
54             </td>
55             <td>
56                 <xsl:value-of select ="ProductName"/>
57             </td>
58         </tr> 
59     </xsl:template> 
60 </xsl:stylesheet>

里面的Html元素看起来不太爽。注意41行apply-templates和50行就比较清楚了。 这个功能在B/S模式的办公系统中打印报表上是非常方便的一种表现手段。

那么如果在站点中这么应用会有什么优缺点呢?

优点:

1、数据层与前台界面配置完全分开了:XML众所周知是非常方便的一种数据表现模式,这里XSL则是定义界面显示相关的信息。
2、开发、维护上更有利于分工明确:分工越细致维护越方便,不至于“牵一发,动全身”。
3、数据重复使用更加方便:这比较符合现在流行的RSS订阅。

缺点:

1、用户如果装了某些XML编辑器后,客户端解析XML+XSL就会出问题,用户直接看到的就是XML代码。
2、进行复杂逻辑运算XML+XSL 比较差,一些复杂的逻辑运算会占用客户端很大的资源。比如UBB功能等。
3、对美工、程序员分工合作的团体来说,对于美工的逻辑、技术层面要求会更加高深一些。
4、Google 不支持对XML文件的检索。这也许不成问题,因为我们可以动态页输出XML,如后缀为.aspx等。另外GOOGLE支持Sitemap.xml功能。

如果您恰好要采用这个架构模式,那肯定程序人员大力支持、美工人员大多反对了,哈~

本文纯属个人见解,有不同声音欢迎回复。

杂记评论(0):
称谓(必填):  网站(选填):
上一篇:如何做好网站开发项目需求分析  下一篇:随机抽取数据库中的记录SQL语法     <<返回杂记列表