Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi xsl文件访问被拒绝,主机上除外_Delphi_Xslt_Delphi 2009 - Fatal编程技术网

Delphi xsl文件访问被拒绝,主机上除外

Delphi xsl文件访问被拒绝,主机上除外,delphi,xslt,delphi-2009,Delphi,Xslt,Delphi 2009,下面是我们构建的XML文件的开始示例,请注意,它正在访问样式表的“CCD.xsl” '<?xml version="1.0"?>' '<?xml-stylesheet type="text/xsl" href="' + 'C:\CDA\Schemas\CCD.xsl"?>' '<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'

下面是我们构建的XML文件的开始示例,请注意,它正在访问样式表的“CCD.xsl”

'<?xml version="1.0"?>'
'<?xml-stylesheet type="text/xsl" href="' + 'C:\CDA\Schemas\CCD.xsl"?>'
'<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
有没有办法解决这个问题

如果你需要更多的信息,请告诉我


谢谢,感谢您的帮助。

您有两个问题,都是由于XSL引用指向C驱动器上的本地文件

问题#1(给出错误的那一个)是您的浏览器正在阻止从远程下载的XML文件访问本地文件系统资源的尝试。因此,浏览器在试图呈现该XML文件时会抛出一个安全错误。这就是你看到的直接错误。调整安全设置或更改浏览器不会解决问题,因为问题2


问题#2是,您的客户机的本地硬盘上大概没有位于
C:\CDA\Schemas\CCD.XSL
的XSL文件。它在远程服务器的C驱动器上。由于问题1,您不能将它放在网络共享上,因此您需要通过与XML文件相同的机制来提供它。然后将XSL文件的URI更改为类似
http://myserver/schemas/ccd.xsl

您有两个问题,这两个问题都源于XSL引用指向C驱动器上的本地文件这一事实

问题#1(给出错误的那一个)是您的浏览器正在阻止从远程下载的XML文件访问本地文件系统资源的尝试。因此,浏览器在试图呈现该XML文件时会抛出一个安全错误。这就是你看到的直接错误。调整安全设置或更改浏览器不会解决问题,因为问题2


问题#2是,您的客户机的本地硬盘上大概没有位于
C:\CDA\Schemas\CCD.XSL
的XSL文件。它在远程服务器的C驱动器上。由于问题1,您不能将它放在网络共享上,因此您需要通过与XML文件相同的机制来提供它。然后将XSL文件的URI更改为类似
http://myserver/schemas/ccd.xsl

谢谢你的帮助,但我还是有点困惑如何解决这个问题。当您说“所以您需要通过与提供XSL文件相同的机制来提供它”时,您是指XML文件吗?你能举个小例子帮助我理解需要做什么吗?谢谢,XML文件。您将TWebBrowser的地址设置为类似
http://myserver/cda/filename.xml
,对吗?您需要通过HTTP从同一台服务器检索XSL。TwebbBrowser实际上是通过“WebBrowser1.Navigate(TempFileName);”将文件加载到服务器上的xml文件,即C:\data\CCR_Record_3336557.xml。您认为如果XSL文件位于同一个文件夹中,它会修复它吗?因此。。那么用户是如何远程的呢?对不起,让我们看看,所以我们在Delphi2009中编译了这个软件。用户在服务器上远程运行“.exe”。在软件中有一个TWebBrowser(delphi)组件,我们在其中加载xml文件,该文件访问xsl文件并输出错误。但是如果你只是直接从主机上运行exe,它就可以工作了。谢谢你的帮助,我仍然有点困惑如何解决这个问题。当您说“所以您需要通过与提供XSL文件相同的机制来提供它”时,您是指XML文件吗?你能举个小例子帮助我理解需要做什么吗?谢谢,XML文件。您将TWebBrowser的地址设置为类似
http://myserver/cda/filename.xml
,对吗?您需要通过HTTP从同一台服务器检索XSL。TwebbBrowser实际上是通过“WebBrowser1.Navigate(TempFileName);”将文件加载到服务器上的xml文件,即C:\data\CCR_Record_3336557.xml。您认为如果XSL文件位于同一个文件夹中,它会修复它吗?因此。。那么用户是如何远程的呢?对不起,让我们看看,所以我们在Delphi2009中编译了这个软件。用户在服务器上远程运行“.exe”。在软件中有一个TWebBrowser(delphi)组件,我们在其中加载xml文件,该文件访问xsl文件并输出错误。但是如果您直接从主机运行exe,它就可以工作。。
WebBrowser1.Navigate(TempFileName);  //TempFileName = C:\data\CCR_Record_3336557.xml