我正在尝试使用VBScript对XML对象进行XSLT转换。
我正在翻译的XSL文件包括<xsl:import href="script.xsl"/>
指令。如果我使用绝对URL(http://localhost/mysite/script.xsl
),它将很好地导入样式表;但是,如果我使用相对路径(script.xsl
),则会报告“找不到资源”。我需要能够在一组计算机之间移植它,因此我需要能够使用相对URI。有什么建议么?
笔记:
http://localhost/myscript.asp
http://localhost/mysite/styles.xsl
http://localhost/mysite/script.xsl
mysite/script.xsl
的附录:
谢谢大家。我越深入研究执行此操作的代码,就越陌生。
myscript.asp
是相当不寻常的代码编译。发生的情况是styles.xsl
作为XML块(myscript.asp
)包含在<xml src=...>
的HTML输出中,然后在客户端使用VBScript将该块作为样式表加载。然后,此样式表用于转换通过XMLHTTP检索的XML块。因此,问题在于styles.xsl
的上下文是客户端上的HTML,与script.xsl
的位置无关。 最佳答案
xsl:import,xsl:include和document()函数的当前目录是包含使用它们的转换的目录。因此,您已经说过使用的xsl:import指令应该可以正常工作。
我唯一想到的可能会影响到这一点:如果使用相对路径,则直接从文件系统读取文件,而如果使用绝对URI,则将从Web服务器检索该文件。是否有某种安全设置阻止脚本读取此目录中的文件?
关于xml - xsl :import or xsl:include的相对路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/142058/