我正在使用XSLT 1.0和C# 2.0,我想缓存我加载的文档,以便每当调用下一页时,它都应该使用缓存文档而不是再次加载它。
这是 XSLT 的一部分,我在参数站点路径中从 C# 获取物理路径,我知道我可以使用 C# 缓存此文档,但我正在寻找在 xslt 1.0 中缓存加载的文档
示例代码:
<xsl:param name="sitespath"/>
<xsl:variable name="siteInfoPath" select="document($sitespath)/sitedata/region/site/language"/>
现在我想缓存 siteInfoPath 变量,以便每次它不将其加载为文档时,它将首先检查缓存变量尝试从缓存加载,否则它将再次加载。
这可能吗?
请指教!!
谢谢。
我认为您无法在 xslt 中缓存 document() 函数的结果以进行多次转换。 document() 函数在运行时计算。但是,您可以做的是将文档缓存在 c# 程序中,并将其作为外部参数传递给转换(您可能必须传递 XPathNavigator;有关详细信息,请参阅此处的 XsltArgumentList.AddParam 文档 http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addparam.aspx)。