免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5428 | 回复: 2

请问XSL文件中可否有变量,可否赋值呢? [复制链接]

论坛徽章:
0
发表于 2006-01-25 15:16 |显示全部楼层
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book><book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>39.95</price>
</book><book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book><book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>
……
</bookstore>
我想找出书价相等书,并在TABLE中同一格显示出来,这个XSL应该怎么写呢?

论坛徽章:
0
发表于 2006-02-16 20:27 |显示全部楼层

  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  3. <!-- localized strings -->
  4. <xsl:variable name='ColumnHeader_Date'>日期</xsl:variable>
  5. <xsl:variable name='ColumnHeader_Time'>时间</xsl:variable>
  6. <xsl:variable name='ColumnHeader_From'>发送者</xsl:variable>
  7. <xsl:variable name='ColumnHeader_To'>接收者</xsl:variable>
  8. <xsl:variable name='ColumnHeader_Message'>消息</xsl:variable>

  9. <!-- variables -->
  10. <xsl:variable name='Debug'>0</xsl:variable>

  11. <xsl:variable name='TableStyle'>font-family:Simsun, Verdana; font-size:75%; text-align:left; vertical-align:top; table-layout:fixed</xsl:variable>
  12. <xsl:variable name='GutterStyle'>width:2ex</xsl:variable>
  13. <xsl:variable name='HeaderStyle'>border-bottom:1 solid black</xsl:variable>

  14. <xsl:variable name='UseZebraStripe'>1</xsl:variable>
  15. <xsl:variable name='ZebraStripeStyle'>background-color:#e0edff</xsl:variable>

  16. <xsl:variable name='MostRecentSessionFirst'>0</xsl:variable>


  17. <xsl:template match="Log">

  18.     <html dir='ltr'>
  19.     <head>
  20.         <title>
  21.             Message Log for <xsl:value-of select="@LogonName"/>
  22.             <xsl:if test="$Debug = 1"> (Debug)</xsl:if>
  23.         </title>

  24.         <xsl:if test="$Debug = 1">
  25.             <span style="font-family:trebuchet ms; font-size:120%">
  26.                 Debug Version
  27.             </span>
  28.             <hr/>
  29.         </xsl:if>
  30.     </head>

  31.     <body style='margin:0'>

  32.         <table id='BodyTable' style="{$TableStyle}" cellspacing='0'>

  33.             <xsl:if test="$Debug = 1">
  34.                 <col style="vertical-align:top; width:5ex;"/>
  35.                 <col style='{$GutterStyle}' />
  36.             </xsl:if>

  37.             <col style="width:16ex;"/>
  38.             <col style='{$GutterStyle}' />
  39.             <col style="width:16ex;"/>
  40.             <col style='{$GutterStyle}' />
  41.             <col style="width:21ex;"/>
  42.             <col style='{$GutterStyle}' />
  43.             <col style="width:21ex;"/>
  44.             <col style='{$GutterStyle}' />
  45.             <col style="width:70ex;"/>

  46.             <thead>
  47.                 <tr>
  48.                     <xsl:if test="$Debug = 1">
  49.                         <th style="{$HeaderStyle}">SID</th>
  50.                         <th/>
  51.                     </xsl:if>
  52.                     <th style="{$HeaderStyle}">
  53.                         <xsl:value-of select="$ColumnHeader_Date"/>
  54.                     </th>
  55.                     <th/>
  56.                     <th style="{$HeaderStyle}">
  57.                         <xsl:value-of select="$ColumnHeader_Time"/>
  58.                     </th>
  59.                     <th/>
  60.                     <th style="{$HeaderStyle}">
  61.                         <xsl:value-of select="$ColumnHeader_From"/>
  62.                     </th>
  63.                     <th/>
  64.                     <th style="{$HeaderStyle}">
  65.                         <xsl:value-of select="$ColumnHeader_To"/>
  66.                     </th>
  67.                     <th/>
  68.                     <th style="{$HeaderStyle}">
  69.                         <xsl:value-of select="$ColumnHeader_Message"/>
  70.                     </th>
  71.                 </tr>
  72.             </thead>

  73.             <tbody style='vertical-align:top'>
  74.                 <xsl:choose>

  75.                     <!-- newest session first -->
  76.                     <xsl:when test="$MostRecentSessionFirst = 1">
  77.                         <xsl:apply-templates>
  78.                             <xsl:sort select='@SessionID' order='descending' data-type='number'/>
  79.                             <xsl:sort select='@DateTime'  order='ascending'/>
  80.                         </xsl:apply-templates>
  81.                     </xsl:when>

  82.                     <!-- oldest session first -->
  83.                     <xsl:otherwise>
  84.                         <xsl:apply-templates>
  85.                             <xsl:sort select='@SessionID' order='ascending' data-type='number'/>
  86.                             <xsl:sort select='@DateTime'  order='ascending'/>
  87.                         </xsl:apply-templates>
  88.                     </xsl:otherwise>

  89.                 </xsl:choose>
  90.             </tbody>
  91.         </table>
  92.     </body>
  93.     </html>

  94. </xsl:template>


  95. <xsl:template match="Message">
  96.     <tr>
  97.         <xsl:call-template name="CommonMessageProcessing" />

  98.         <td> <xsl:apply-templates select="From/User"/> </td>
  99.         <td/>
  100.         <td> <xsl:apply-templates select="To/User"/> </td>
  101.         <td/>
  102.         <td>
  103.             <span>
  104.                 <xsl:attribute name="style">
  105.                     <xsl:value-of select="Text/@Style"/>
  106.                 </xsl:attribute>
  107.                 <xsl:value-of select="Text"/>
  108.             </span>
  109.         </td>
  110.     </tr>
  111. </xsl:template>


  112. <xsl:template match="Invitation|InvitationResponse|Join|Leave">
  113.     <tr>
  114.         <xsl:call-template name="CommonMessageProcessing" />

  115.         <td/>  <!-- From -->
  116.         <td/>
  117.         <td/>  <!-- To -->
  118.         <td/>
  119.         <td>
  120.             <span>
  121.                 <xsl:attribute name="style">
  122.                     <xsl:value-of select="Text/@Style"/>
  123.                 </xsl:attribute>
  124.                 <xsl:value-of select="Text"/>
  125.             </span>
  126.         </td>
  127.     </tr>
  128. </xsl:template>


  129. <xsl:template match="User">
  130.     <!-- add a comma before all but the first user -->
  131.     <xsl:if test="position() != 1">, </xsl:if>

  132.     <xsl:value-of select="@FriendlyName"/>
  133. </xsl:template>


  134. <xsl:template name="CommonMessageProcessing">
  135.     <!-- zebra-stripe the sessions -->
  136.     <xsl:if test="$UseZebraStripe = 1">
  137.         <xsl:if test="(@SessionID mod 2) = 1">
  138.             <xsl:attribute name="style">
  139.                 <xsl:value-of select="$ZebraStripeStyle"/>
  140.             </xsl:attribute>
  141.         </xsl:if>
  142.     </xsl:if>

  143.     <xsl:if test="$Debug = 1">
  144.         <td> <xsl:value-of select="@SessionID"/> </td>
  145.         <td/>
  146.     </xsl:if>

  147.     <td> <xsl:value-of select="@Date"/> </td>
  148.     <td/>
  149.     <td> <xsl:value-of select="@Time"/> </td>
  150.     <td/>
  151. </xsl:template>


  152. </xsl:stylesheet>

复制代码


msn的xsl文件

论坛徽章:
0
发表于 2006-03-07 10:47 |显示全部楼层
xsl文件有了,请问MSN的XML文件有吗?可以让我参考下吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP