我正在尝试使用VBScript对XML对象进行XSLT转换。
我正在翻译的XSL文件包括<xsl:import href="script.xsl"/>指令。如果我使用绝对URL(http://localhost/mysite/script.xsl),它将很好地导入样式表;但是,如果我使用相对路径(script.xsl),则会报告“找不到资源”。我需要能够在一组计算机之间移植它,因此我需要能够使用相对URI。有什么建议么?

笔记:

  • VBScript文件位于http://localhost/myscript.asp
  • 第一个XSL文件位于http://localhost/mysite/styles.xsl
  • 第二个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/

    10-12 12:39
    查看更多