转换XML与公开可用的XSLT(Transform XML with publicly availa

2019-10-21 01:00发布

我没有与XSLT多大的实际经验,所以我需要对这个问题的“最佳实践”的帮助。 XML是automaticaly生成并被发送给用户(电子邮件等)。 该XML包含(开始和结束元素标签会被删除到编辑器的问题)以下头元素:

xml-stylesheet type="text/xsl" href="http://example.com/myvisualisation.xslt"

XSLT上传并可以在给定的URL。 什么是用户打开接收到这种转变的XML应用“标准/正常”的方式? (当我尝试用浏览器我得到跨域错误)。 是否有可能(以及如何)安排的事情,这样用户只需双击附加的XML和他/她会看到转换后的文档?

此外,当我试图打开XML使用MS Excel(这给我申请转型的选择)是相当“混乱”(缺少边界等)相比,如果我使用的浏览器(看起来不错),但我使用非常标准和简单HTML ..没有花哨的东西。

Answer 1:

我不认为发送XML文件,以“用户”是个好主意。 你为什么不这样做对他们的改造和发送它们生成的HTML文件 - 或(最好是,恕我直言)使用一些其他普遍接受的格式,如PDF?

此外,当我试图打开XML使用MS Excel(这给我申请转型的选择)是相当“混乱”(缺少边界等)相比,如果我使用的浏览器(看起来不错),但我使用非常标准和简单HTML ..没有花哨的东西。

硬基于这么少的信息告诉(无,真的),但它可能有一些做与Excel不是浏览器。



Answer 2:

虽然浏览器都支持XSLT,在实践中,大多数XSLT生成HTML是在服务器上或在脱机批处理进程中运行 - 而不是浏览器中。 如果在服务器或脱机批处理过程,而不是在浏览器中所有可能的运行XSLT。

如果你在浏览器中转换XML,了解一些严重的局限和问题:

  1. XSLT 2.0不受任何主流浏览器的支持。
  2. 浏览器安全模型中影响XSLT处理方式有所不同。 这可能是无奈的在开发或分发依赖于基于浏览器的XSLT文档的主要来源。
    • 正如你已经遇到过,跨域限制可能是一个问题。
    • 而Firefox将允许本地加载XSLT文件来运行,Chrome浏览器不会; Chrome需要的是XSLT从服务器加载 。

注意:这不是一个“头元素”,而是一个处理指令。 你应该能够将其粘贴到你的问题逐字,它应该是这样的:

<?xml-stylesheet type="text/xsl" href="http://example.com/myvisualisation.xslt"?>

如果您的文档,而不是实际上并表示这是一个元素[ ]

<xml-stylesheet type="text/xsl" href="http://example.com/myvisualisation.xslt"/>

然后链接到XSLT肯定会失败。

最后说明一点:你的XML-在-MS Excel的问题应该分开基本上更详细询问加入。



文章来源: Transform XML with publicly available XSLT
标签: xml xslt