0

我正在使用经典的 ASP。我有一个已经加载到 RAM 中的样式表。我的问题是,我的 XSLT 有一个

<xsl:include href="../path to file/file.xslt" /> 

在里面。

当我将它从 RAM 加载到 IXMLDOMDocument 对象中时,相对路径会被丢弃。这是我当前的代码

set XSLTObj = Server.CreateObject("Msxml2.XSLTemplate")
set XSLTObj.stylesheet = myXSLTFile
set XSLTProc = XSLTObj.createProcessor

现在,由于 XSLT 文件是从 RAM 加载的,因此计算机不知道如何计算 xsl:include 标记的相对路径。所以它试图从这里提取文件:C:\windows\system32\inetsrv

我真的只需要一种方法来设置“默认路径”或以某种方式模拟它。我想到的几个选项(我真的不想这样做)是:

  • 将 XSLT 文件保存到我想要的磁盘上,然后使用 XSLTObj.load
  • 从我希望路径所在的位置加载“虚拟”XSLT 文件,然后将内容替换为 RAM 中的 XSLT 内容

我真的更喜欢某种方式来设置我希望它使用的路径。想法?

4

1 回答 1

0

我最终选择了列表中的第二个选项。我加载了一个 XSLT 文件,该文件保存在我希望我的相对路径基于的位置。然后,我对文档对象内的每个孩子运行 removeChild 命令。然后,我为 RAM 中 XSLT 中的每个孩子做了一个 cloneNode,然后是一个 appendChild。

我不确定这是否是最好的路线表现,但它实现了我想要的。

于 2011-08-05T13:12:20.960 回答