0

我有 3 个 XSL 文件,其中包含指向 C:\templates\Test\file.pdf 之类的路径

这条路径并不总是相同的,而不是在 XSL 中硬编码,我希望路径 C:\templates\test\ 被标签 [BASEPATH] 替换,当我阅读在 xsl 文件中放入 XSLTransform 对象(是的,我知道它已被弃用,我可能会同时移至 XSLCompiledTransform),我希望将标签 [BASEPATH] 替换为 web 文件夹的绝对文件路径(或 Server.MapPath("~") 在 .net 中的样子)

我想我可以制作一个 XSLLoader aspx 页面,该页面通过查询字符串获取 XSL 文件的名称,然后通过 xml 内容类型返回 XSL 文件。当我尝试这个时,我得到一个 503 错误,所以我不确定你是否可以将这样的 url 传递给 XSLTransform.Load 方法。

有什么想法该怎么做?

4

1 回答 1

1

你看过 XSL 参数吗?

<xsl:param name="basepath" select="'C:\Users\Graeme\'" />

<xsl:value-of select="document(concat($basepath, 'test.pdf'))" />

然后,大多数体面的 XSLT 引擎都有一种从外部设置根级别参数的方法。

于 2009-11-10T12:51:38.673 回答