如何在远程服务器上使用XSL呈现本地XML
在我的应用程序中,我使用XSLT来呈现XML文件 当客户机具有xsl文件时,这可以正常工作:如何在远程服务器上使用XSL呈现本地XML,xml,internet-explorer,xslt,Xml,Internet Explorer,Xslt,在我的应用程序中,我使用XSLT来呈现XML文件 当客户机具有xsl文件时,这可以正常工作: <?xml-stylesheet type="text/xsl" href="..\XSL\test.xsl"?> 但当我尝试在服务器上的XML文件中使用xsl文件时,如: <?xml-stylesheet type="text/xsl" href="http://www.mysite.com/xsl/test.xsl"?> 这是行不通的。 这似乎是一种安全限制,但有
<?xml-stylesheet type="text/xsl" href="..\XSL\test.xsl"?>
但当我尝试在服务器上的XML文件中使用xsl文件时,如:
<?xml-stylesheet type="text/xsl" href="http://www.mysite.com/xsl/test.xsl"?>
这是行不通的。
这似乎是一种安全限制,但有没有办法在远程服务器上使用远程XSL呈现本地XML文件?您看到的“安全限制”称为。这意味着您的XSLT样式表必须来自加载XML的同一服务器
如果您的XML来自具有PHP等脚本功能的服务器,您可以通过创建代理脚本来避免这种情况。此脚本将加载远程XSL文件,并使其看起来像本地文件:
<?php
header('Content-type: text/xsl');
echo file_get_contents('http://www.mysite.com/xsl/test.xsl');
?>
在IE11中,仍然有一个解决方法。您应该转到“Internet选项->安全->本地Internet->自定义级别->杂项->跨域访问数据源”,并将其设置为“启用”或“提示”(建议使用最后一个选项,以便您仍能对此进行控制)。这将允许通过远程xsl加载/处理本地xml。什么是“当客户端有xsl文件”呢?您是否通过http://
或file://
打开XML?客户端从WCF应用程序获取XML文件,因此它们将作为文件夹中的文件打开。由于这个原因,不幸的是,它们不是来自同一个来源;也不是要求所有用户更改安全设置的解决方案。