XSLT浏览器转换;我错过了什么?

时间:2010-12-22 17:04:48

标签: xslt

让我立刻说我对这个基于网络的编程很新。有了这个,这是我的情况:

我有一个应用程序,我需要从一个硬件生成XML文件,只运行最基本的Web服务器应用程序。在硬件中没有很多“不动产”或额外的功能,所以我希望生成一个包含命令,参数和其他与硬件配置相关的信息的XML文件,然后发送它连接到已连接到Web服务器的Web浏览器。我希望能够将XML文档链接到将在硬件上托管的转换。我相信这可以使用样式表href。

来完成

当我在XML文件的顶部使用以下行时出现问题:

<?xml-stylesheet type="text\xsl" href="C:\6850XML\XSL6850.xslt"?>

现在显然,这是在部署到硬件之前在工作站上进行调试。当我在IE中打开XML文件时,我从字面上得到了XML文件。在Firefox中,我得到了XML的解析版本。当我从VS2K10中运行XSLT调试器时,我得到了我想要的网页。这可能是因为您手动指定要在开发环境中用于转换的XML文件。我对样式表href做错了什么?该类型应该是别的吗?

对不起,我确信这将是一个基本问题,但我正在抓我已经无毛的头。

3 个答案:

答案 0 :(得分:1)

它应该是type="text/xsl"并且href属性应该是URL,而不是Windows文件路径,因此请尝试href="file:///C:/6850XML/XSL6850.xslt"。但是,由于安全限制,从Web上的资源链接到本地​​文件系统上的样式表可能不会在当今的浏览器中起作用。

答案 1 :(得分:1)

网络在* nix / BSD上运行,因此正斜杠始终按顺序排列。修复你的'text / xsl'。

答案 2 :(得分:1)

问题是浏览器没有到达样式表。这可能是因为您的错误type="text\xsl"伪属性和URI协议(不受浏览器处理,安全限制)。

解决方案:使用相对URI,如

<?xml-stylesheet type="text/xsl" href="XSL6850.xslt"?>

每次都在我的桌面上测试