我只是学习了如何使用XML数据文件和XSLT来创建网页(从XML转换为HTML或XHTML)。但我从来没有见过一个网页,其XML源代码带有XSLT文件的链接。这不是一个好的解决方案吗?
答案 0 :(得分:5)
如果您已经将数据作为XML(或者很容易将其转换为XML),那么我会说这是一个很好的解决方案。您可能希望确保正确配置Web服务器以确保在客户端缓存XSLT,以便它不必每次都执行请求。
如果数据不是XML,那么有更好的模板解决方案(PHP,JSP,ASP等),它们更适合您所处的环境。
答案 1 :(得分:2)
当然有使用XSL + XML生成的页面,但我敢打赌,大多数页面都是服务器端解析,而不是客户端。然后,如果你打开一个aspx或php页面,你无法确定它是否已经从XML和XSL文件中解析出来。
这也是一个不错的模板机制。我们将它用于我们公司的网页,以及电子邮件和其他一些媒体。这就是XML在这方面的优势;它不是媒体感知的,您可以将源xml转换为多种格式(其中大多数将基于xml)。
答案 2 :(得分:2)
我不认为这对面向公众的网站来说是一个很好的架构:
如果你的数据本身是XML,那么在服务器端通过XSL转换它可能是有意义的(我已经编写了这样做的系统),但这是我在构建Web时使用XSL的唯一情况和架构现场。
答案 3 :(得分:1)
您必须在服务器上进行转换,因为并非每个浏览器都支持XSLT。
答案 4 :(得分:1)
答案 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引擎蜘蛛