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