使用XML和XSLT是制作网页的好方法吗?

时间:2010-08-12 12:04:57

标签: xml xslt

我只是学习了如何使用XML数据文件和XSLT来创建网页(从XML转换为HTML或XHTML)。但我从来没有见过一个网页,其XML源代码带有XSLT文件的链接。这不是一个好的解决方案吗?

8 个答案:

答案 0 :(得分:5)

如果您已经将数据作为XML(或者很容易将其转换为XML),那么我会说这是一个很好的解决方案。您可能希望确保正确配置Web服务器以确保在客户端缓存XSLT,以便它不必每次都执行请求。

如果数据不是XML,那么有更好的模板解决方案(PHP,JSP,ASP等),它们更适合您所处的环境。

答案 1 :(得分:2)

当然有使用XSL + XML生成的页面,但我敢打赌,大多数页面都是服务器端解析,而不是客户端。然后,如果你打开一个aspx或php页面,你无法确定它是否已经从XML和XSL文件中解析出来。

这也是一个不错的模板机制。我们将它用于我们公司的网页,以及电子邮件和其他一些媒体。这就是XML在这方面的优势;它不是媒体感知的,您可以将源xml转换为多种格式(其中大多数将基于xml)。

答案 2 :(得分:2)

我不认为这对面向公众的网站来说是一个很好的架构:

  • 虽然大多数浏览器都支持客户端XSLT,但并非所有浏览器都支持
  • 即使他们这样做,也可能存在个人浏览器兼容性问题,如javascript
  • 能够'查看源'是一个非常有用的调试工具。你不能用XSL
  • 做到这一点
  • Google应该会将HTML标记为高于XML文档
  • XSL是一种可怕的语言
  • 您仍然需要渲染到XML(除非您的数据是本机XML),那么为什么不直接渲染到(X)HTML?

如果你的数据本身是XML,那么在服务器端通过XSL转换它可能是有意义的(我已经编写了这样做的系统),但这是我在构建Web时使用XSL的唯一情况和架构现场。

答案 3 :(得分:1)

您必须在服务器上进行转换,因为并非每个浏览器都支持XSLT。

答案 4 :(得分:1)

暴雪的world of warcraft网站及其armory网站拥有我见过的唯一一个发送xml并使用客户端xslt显示它的网站。它似乎工作得很好,而且它们是相当高容量的网站。 (请注意,它会查看用户代理并为某些浏览器执行转换服务器端,我知道它是IE的客户端)

答案 5 :(得分:0)

有一个示例PHP应用程序使用XML / XSLT生成HTML,在Tony Marston的A Sample PHP Application上进行了服务器端和客户端演示,并提供了大量的推理,howtos等。

答案 6 :(得分:0)

正如一些人已经说过的那样,当你的数据已经是XML格式或者你需要将它作为XML发布到其他地方(因此无论如何需要生成XML)时,这是一个很好的选择 - 这就是我们的一个项目)。在这种情况下,将转换移动到客户端是从服务器获取一些负载的好选择。

某些浏览器在客户端不支持XSLT,但大多数使用的浏览器(IE,FF,Chrome)都可以正常工作。移动设备的浏览器面临挑战。例如。在Android XSLT上尚不支持。我们通过在服务器端进行设备检测来处理这个问题(使用WURLF - 遗憾的是,它没有XSL支持的功能标志,所以我们必须根据设备类型决定)并且只在服务器端进行转换,仅针对那些设备无法在客户端处理它。因此,我们尽可能多地保留客户端的处理能力,这有助于我们在不需要硬件升级的情况下轻松扩展(到目前为止:))。

使用XML的另一个优点是您正在导出纯数据,这些数据可以轻松使用,但其他一些工具可以进行不同的处理。这几乎就像您提供了一个Web服务来获取您的数据。对于您数据的未来使用,可以非常方便。

安全性:如果您在客户端使用XSLT,则需要考虑的一个重要方面是确保您发送给客户端的XML数据不是机密/私有的(不包含任何敏感信息,您可能不希望某些用户看到)。例如。如果您的XSLT仅为某些用户显示某些数据,并且如果其他用户会看到隐藏数据,那么它将成为安全桥,您最好进行转换服务器端。

希望它有所帮助。

干杯,斯蒂夫。

答案 7 :(得分:-1)

如果符合您的需求,这是一个很好的解决方案。客户端XSLT转换是......
...好因为:
- 您可以在廉价的网络空间上使用模板而无需任何服务器支持 - 非常适合繁忙的交通 - 该网站甚至可以在CD / DVD / USB-Stick上离线工作 - 页眉,页脚,导航等在XSLT脚本中并且只加载一次,对于许多类似页面的速度很有用。
......不好因为:
- 一些小众浏览器可能不支持XSLT
- 你不会出现在谷歌,XML文件不适合serch引擎蜘蛛