我正在尝试从Web服务器提供动态生成的xml页面,并从同一Web服务器提供自定义的静态xslt,这将把处理卸载到客户端Web浏览器中.
直到最近,我还在Firefox 2,3,IE5,6和Chrome中运行良好.最近,有些东西发生了变化,Firefox 3现在只显示源中的文本元素.
页面源如下所示:
....
Firebug显示正在加载Root.xsl文件,并且它的响应头包含该行
Content-Type text/xml
我也尝试用application/xml作为内容类型,但它没有区别:-(
Web Developer Extension也显示正确生成的源,如果您保存此页并在Firefox中加载页面,它将正确显示.
显示问题的Firefox版本是3.0.3
我有什么想法可能做错了吗?
仅显示文本元素是您从空XSL样式表中获取的行为.
对我来说,这表明你的xpath表达式正在发生一些可疑的事情,并且xsl:template/@ match属性与源文档不匹配.
您没有提供足够的信息来进一步诊断,所以我可以提供这种盲目的猜测.
编辑:事实证明问题是IE和Chrome默默地接受一个节点集作为字符串长度的参数,而FF3没有.请注意,规范要求使用可选的字符串参数,并且不指定具有nodeset参数的行为.