« 广州印象编程及服务器维护工作者常用资料 »

XSL的命名空间问题

这两天刚学XSL,觉得是个不错的东西,值得深入研究一下,XSL的命名空间,我看到的有两种写法:

<!--第一种-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<!--第二种-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

我因为忽略了这行的区别,导致我郁闷了好半天, 后来search到了两个贴子,特意转过来。

源:http://bbs.51js.com/viewthread.php?tid=42672

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">命名空间 是草案,
FireFox不支持草案版
XSL的名称空间改成标准:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

源:http://bbs.xml.org.cn/dispbbs.asp?boardID=8&ID=39590

微软的资料:

升级到新的 XSLT 语法

提升性能的下一步需要更多的工作,但这是值得付出努力的。在这里,我们将旧的 MSXML XSL 样式表转换为新的 XSLT 标准。MSXML 最初是在 1999 年 3 月 W3C XSL 工作组完成正式标准之前发布的。在 3 月和 11 月之间,制定建议之后,又在语言中添加了许多绝佳的新内容。考虑到这些变化,我们将 XSL 样式表进行了如下升级:
&#8226; 

1. 将旧的 XSL 命名空间 URN 转换为 http://www.w3.org/1999/XSL/Transform。
&#8226; 

2. 向 
<xsl:stylesheet> 根元素中添加必需的 version="1.0"。
&#8226; 

3. 将 order-by 属性更改为 
<xsl:sort> 元素,并相应地更改 DHTML 脚本代码,以便您可以动态地重新排序页面。
&#8226; 

4. 将 averageChange() 函数的 
<xsl:eval> 调用替换为标准的 XPath 表达式:

<xsl:value-of 
select="format-number(sum(/portfolio/stock/percent) 
      div count(/portfolio/stock),'#.#')"
/> 

&#8226; 

5. 将 totalVolume() 的 xsl:eval 调用替换为另一个标准表达式:

<xsl:value-of select
"format-number(sum(/portfolio/stock/volume),'#')"
/> 

&#8226; 

6. 完全移除旧的 
<xsl:script>块(因为不再需要它)。
&#8226; 

7. 将所有其他 
<xsl:eval> 调用替换为直接的 format-number 调用,例如,价格和更改模板现在包含:

<xsl:value-of 
select="format-number(.,'0.00')"/> 

&#8226; 

8. 更改旧的 expr="...">,以使用新的 XPath 表达式来执行相同的操作:

<xsl:if test=". &lt; -5"> 

结果是 portfolio3.xsl。要使用这个新的样式表,我们只需更改下行:

xsl.load(Server.MapPath("../portfolio3.xsl")); 

使用这个样式表会导致每秒处理的请求数骤增为 99,与旧的 XSL 样式表相比,性能提升了 115%。现在,示例的总吞吐量比 MSXML 2.5 增加了 253%。大多数改进得益于我们从样式表中成功移除了 JScript 的所有调用。
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

Search

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80710

Copyright 2008 世界的角落. All Rights Reserved.如有涉及侵犯您权益的情况,请和我联系!