这两天刚学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">
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 样式表进行了如下升级:
• 
1. 将旧的 XSL 命名空间 URN 转换为 http://www.w3.org/1999/XSL/Transform。
• 
2. 向
<
xsl:stylesheet
>
根元素中添加必需的 version="1.0"。
• 
3. 将 order-by 属性更改为
<
xsl:sort
>
元素,并相应地更改 DHTML 脚本代码,以便您可以动态地重新排序页面。
• 
4. 将 averageChange() 函数的
<
xsl:eval
>
调用替换为标准的 XPath 表达式:
<
xsl:value-of
select
="format-number(sum(/portfolio/stock/percent)
div count(/portfolio/stock),'#.#')"
/>

• 
5. 将 totalVolume() 的 xsl:eval 调用替换为另一个标准表达式:
<
xsl:value-of
select
=
"format-number(sum(/portfolio/stock/volume),'#')"
/>

• 
6. 完全移除旧的
<
xsl:script
>
块(因为不再需要它)。
• 
7. 将所有其他
<
xsl:eval
>
调用替换为直接的 format-number 调用,例如,价格和更改模板现在包含:
<
xsl:value-of
select
="format-number(.,'0.00')"
/>

• 
8. 更改旧的 expr="...">,以使用新的 XPath 表达式来执行相同的操作:
<
xsl:if
test
=". < -5"
>

结果是 portfolio3.xsl。要使用这个新的样式表,我们只需更改下行:
xsl.load(Server.MapPath("../portfolio3.xsl")); 
使用这个样式表会导致每秒处理的请求数骤增为 99,与旧的 XSL 样式表相比,性能提升了 115%。现在,示例的总吞吐量比 MSXML 2.5 增加了 253%。大多数改进得益于我们从样式表中成功移除了 JScript 的所有调用。
208

被折叠的 条评论
为什么被折叠?



