浏览器呈现XSLT与PHP呈现XSLT

时间:2010-02-03 20:09:09

标签: xml browser xslt

我在当前项目中使用XML和XSLT,我想知道让浏览器使用样式表将XML呈现为HTML而不是使用PHP xsltprocessor之类的东西是好的。

我使用Browser xslt处理器的一个主要原因是允许API在不久的将来访问我的XML数据。所以我想要转换客户端,所以我的XML仍然可用。

我可能错误的PHP xsltprocessor,但是当通过PHP处理xml时,收到的数据是呈现的XML(在我的例子中是HTML),并且XML数据不再可用。是吗?

感谢您清理。

3 个答案:

答案 0 :(得分:1)

我建议您在服务器端进行转换,因为您可以对其进行更多控制。如果您依赖浏览器,您可能会发现不同浏览器中渲染引擎的细微差别。如果您在服务器上进行转换并传递html,那么您可以通过准确指定要生成的html进行更清晰的测试,确保该html的静态版本看起来正确,然后处理您的XSLT以确保它生成html正确。

要在客户端获取XML,在转换的一部分中,您可以输出所需的XML部分(或整个DOM),并将其放在JavaScript变量或页面上可访问的某个位置。

我发现渲染客户端对于小型,受控(例如内部)的使用很有用,但是对于任何你想要严格控制输出服务器端的东西来说更可靠。

答案 1 :(得分:1)

如果您使用MVC模式设计应用程序,那么无关紧要。您将能够通过API将HTML公开给常规浏览器和XML。

即使您在服务器端执行XSLT,如果/当您添加API时,跳过该步骤应该相当简单。

通常客户端的XSLT有许多缺点 - 高延迟,因为样式表和所有数据都必须在任何开始渲染之前完成加载。使用纯HTML,您可以获得更低的延迟(只有一个文件,流式传输),并且即使在HTML完成之前,其他资源也会开始下载。

答案 2 :(得分:0)

这完全取决于你的最终目标。我处理一个生成报告为xml的应用程序,我们将xml和xslt发送到浏览器进行处理。这种方法有几个原因:

  • 正如您已经提到的,您可以在客户端进行进一步处理
  • html相当冗长,如果您可以控制指定xml,则可以确保它不是那么冗长,所以最后在服务器和浏览器之间发送少量数据
  • xslt可以缓存在浏览器上,因此在第一次使用后不会成为开销
  • 在服务器上进行转换会增加服务器的负载,如果您有许多人同时尝试访问该页面,则可能会产生影响。

在某些情况下,我们在服务器上进行转换。例如我们转换为html表,然后更改http内容类型以将结果发送为excel。