gpt4 book ai didi

xml - XSLT 在网络浏览器中不工作

转载 作者:数据小太阳 更新时间:2023-10-29 01:54:23 26 4
gpt4 key购买 nike

我有一个用于 XML 样式的 XSLT 文件。 XSLT 可通过 URL ( http://someurl/somefile.xsl) 毫无问题地访问。

当我将相同的 URL 插入 xml-stylesheet 处理指令时,它只在浏览器(FF、IE)中呈现纯文本,

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://someurl/somefile.xsl"?>
<rootElement>...</rootElement>

但是当我使用本地文件路径(文件下载到与 XML 文件相同的文件夹)时,它就像一个魅力:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="somefile.xsl"?>
<rootElement>...</rootElement>

为什么?

最佳答案

在 Web 浏览器中运行 XSLT

在浏览器中运行 XSLT 受到一些限制:

  • XSLT 2.0 不受任何主要网络浏览器的支持。

  • 浏览器安全模型在 XSLT 处理方面有所不同。

    • 跨域限制通常要求 XSLT 从与 XML 相同的来源加载。 (在这种情况下,这似乎是在咬你。)

    • Chrome 会处理 not allow本地加载的 XSLT 运行(即使 XML 是本地加载的)。这在开发过程中可能很烦人。

由于这些原因,XSLT 通常在服务器上或以批处理模式而不是在浏览器中运行。

如果您希望在浏览器中运行 XSLT 并让它与 Chrome、Firefox 和 IE 一起工作,您必须

  1. 仅使用 XSLT 1.0, XSLT 2.0。
  2. 在 XML 文件中使用 xml-stylesheet 处理指令将 XSLT 文件与 XML 文件链接起来:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="http://origin-domain/path/to/file.xsl"?>
    <rootElement>...</rootElement>
  3. 从服务器而不是本地文件提供 XSLT。
  4. 确保 XSLT 与 XML 来自同一域。

最后一定要check the browser console对于任何错误消息。例如,这是无法定位 XSLT 时 IE 显示的内容:

enter image description here

关于xml - XSLT 在网络浏览器中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com