我在当前项目中使用XML和XSLT,我想知道让浏览器使用样式表将XML呈现为HTML而不是使用PHP xsltprocessor之类的东西是好的。
我使用Browser xslt处理器的一个主要原因是允许API在不久的将来访问我的XML数据。所以我想要转换客户端,所以我的XML仍然可用。
我可能错误的PHP xsltprocessor,但是当通过PHP处理xml时,收到的数据是呈现的XML(在我的例子中是HTML),并且XML数据不再可用。是吗?
感谢您清理。
答案 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表,然后更改http内容类型以将结果发送为excel。