为了账号安全,请及时绑定邮箱和手机立即绑定

浏览器上的 XSLT 处理器不执行转换

浏览器上的 XSLT 处理器不执行转换

绝地无双 2023-09-18 10:36:44
我使用在 Internet 上找到的 XSLT 处理器将 XML 文件转换为 HTML 文件。它有效,但是当我尝试在浏览器上执行相同的操作,将引用添加到 XML 文件时<?xml-stylesheet type="text/xsl" href="contabilità.xsl"?>,它不起作用。我尝试了 Firefox、Chrome 和 Edge,结果是一样的。这是 XML 文件:这是 XSL 文件:<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">     <xsl:strip-space elements="yes"/>    <xsl:key name="tableByDataScontrino" match="scontrino" use="data" />    <xsl:template match="/">        <html>            <head>                <title>HTML Document</title>            </head>            <style>                table {                font-family: arial, sans-serif;                border-collapse: collapse;                width: 100%;                }                td, th {                border: 1px solid #dddddd;                text-align: left;                padding: 8px;                }                tr:nth-child(even) {                background-color: #dddddd;                }                   caption {                display: table-caption;                text-align: center;                }            </style>            <body  onload="getCurrentData(); getProductPrize()">                <h2 align="center">Benvenuto <xsl:value-of select="gruppo/studente[nome='sergio']/nome"/></h2>                <h2 align="center">Gruppo: <xsl:value-of select="gruppo/nome"/> </h2>                <h2 align="center">Scontrini</h2>这些文件位于同一目录中。我知道如果文件位于本地,Chrome 会给出错误,但对于其他两个文件应该不会有任何问题。
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

您的 XML 和 XSLT 文件都是正确的。正如您已经注意到的,Chrome 无法运行。
对于 Firefox,此行为被注册为错误,由于安全问题可能不会得到修复。

但您可以通过about:config在 Firefox 中进行修改来规避此问题。

privacy.file_unique_origin = false

那么您至少可以在 Firefox 中将 XML 与本地 XSLT 一起使用。
免责声明:我不了解 Edge :-(


查看完整回答
反对 回复 2023-09-18
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

<?xml-stylesheet type="text/xsl" href="contabilità.xsl"?>将通过 HTTP(S) 运行,而不是从文件系统运行。这基本上是由于浏览器施加的安全限制,有些浏览器(如 Chrome)很久以前就施加了安全限制,而另一些(如 Mozilla)最近才修复该领域的漏洞,忽略了文件系统中 XSLT 的使用,或者在 Edge 的情况下,如果您使用基于 Chromium 的新版本Edge 作为浏览器引擎已经发生了变化。



查看完整回答
反对 回复 2023-09-18
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信