Xslt开发中善用<xsl:comment/>
2009-07-30 13:17
288 查看
初学者常会遇见这样的情况,通过Xslt格式经输出的html页,明明在查看源代码中什么都有,但就是不能在IE中显示出来,在Firefox中确显示正常,在Dreamweaver的所见即所得编辑器中也正常。我以前也为这个问题迷惑过,还就此问题问了孟子E章,在此谢谢孟子。
究其原因,是因为IE的的Bug,根据最新XHTML的标准,如果一个html/xml标签内没有内容,可以使用反斜杠来结束这个标签,假如你在xslt中写入<script src="youscriptfile.js"></script>,并且通过vs.net 2005(通过其它语言格式化我没有测试过)中的XslCompiledTransform类进行格式,那么你输入出的结果将是<script src="youscriptfile.js" />,XslCompiledTransform是.Net Framework 2.0才增加的,严格执行XHTML,但令人费解的是IE却不能支持以反斜杠结尾的标签。
我们可以在script中间加一些字符,就如:<script src="youscriptfile.js">a</script>,但对于其它HTML标签如DIV就不行了,因为这样会输出内容。
<xsl:comment />标签会输出一个<!---->HTML注释,比如我们在CSS的Style样式可以这样写:
css 代码
<style type="text/css">
<xsl:comment>
.yourcss
{
}
</xsl:comment>
</style>
将输出成为:
css 代码
<style type="text/css">
<!--
.yourcss
{
}
-->
</style>
根据这个特性,我们可以这样写:<script src="youscriptfile.js"><xsl:comment /></script>,<xsl:comment />。这样输出的结果在IE中就能正常显示了。
你可能会想到直接在XSLT中使用<!---->,但很遗憾地告诉你,这样是不行的,因为<!---->也是XSLT的注释,<!---->是不会被输出的。
如果你不能确定HTML标签中是否有内容,请在标签中加上<xsl:comment />,这样可以避免不必要的麻烦。
究其原因,是因为IE的的Bug,根据最新XHTML的标准,如果一个html/xml标签内没有内容,可以使用反斜杠来结束这个标签,假如你在xslt中写入<script src="youscriptfile.js"></script>,并且通过vs.net 2005(通过其它语言格式化我没有测试过)中的XslCompiledTransform类进行格式,那么你输入出的结果将是<script src="youscriptfile.js" />,XslCompiledTransform是.Net Framework 2.0才增加的,严格执行XHTML,但令人费解的是IE却不能支持以反斜杠结尾的标签。
我们可以在script中间加一些字符,就如:<script src="youscriptfile.js">a</script>,但对于其它HTML标签如DIV就不行了,因为这样会输出内容。
<xsl:comment />标签会输出一个<!---->HTML注释,比如我们在CSS的Style样式可以这样写:
css 代码
<style type="text/css">
<xsl:comment>
.yourcss
{
}
</xsl:comment>
</style>
将输出成为:
css 代码
<style type="text/css">
<!--
.yourcss
{
}
-->
</style>
根据这个特性,我们可以这样写:<script src="youscriptfile.js"><xsl:comment /></script>,<xsl:comment />。这样输出的结果在IE中就能正常显示了。
你可能会想到直接在XSLT中使用<!---->,但很遗憾地告诉你,这样是不行的,因为<!---->也是XSLT的注释,<!---->是不会被输出的。
如果你不能确定HTML标签中是否有内容,请在标签中加上<xsl:comment />,这样可以避免不必要的麻烦。
相关文章推荐
- XSLT <xsl:if> 元素 判断属性等于某个值
- EBS Form开发 弹性域定义中的参数<->
- android开发 - <meta-data>标签
- &lt;&lt;高效程序员的45个习惯-敏捷开发修炼之道&gt;&gt;总结
- android NDK开发编译时出现Type 'jint' could not be resolved和Unresolved inclusion: <jni.h>的解决办法
- 用struts2开发,<result type="json"></result>是什么意思?
- 【Qt编程】基于Qt的词典开发系列<八>--用户登录及API调用的实现
- Revit 二次开发的环境配置<上手版>
- Cocos2d-x使用Javascript开发js绑定C++<代码演示样例>
- JPA开发总结<一>
- 开发环境搭建<->--ping通网络
- [转]XSLT <xsl:output> 元素
- 中国人自己的开发语言HB++<语句介绍>
- BaseDAO开发及获取泛型的传输数据类型(Class<T>)实例讲解
- 从源代码编译安装Qt开发工具如(KDevelop)时遇到:Qt (>= Qt 3.3 and < 4.0)解决方法
- XSLT2.0----<xsl:analyze-string>
- 【Virtual C++ 3D游戏开发】前置知识 二 <Windows环境下的一些重要概念>
- 【移动开发】布局优化利器<include/>和ViewStub
- <杂谈1000>笛卡尔的方法论与项目开发
- <WIFI>搭建ESP8266开发环境