我目前正在一个网站上工作,我们正在向支持它的客户端发送 XML+XSLT,以节省带宽。但是,如果客户端不支持它,我们将在服务器端进行转换,并发送生成的 HTML。
在我的 XSLT 中,我非常喜欢使用 XPath:
document('')//xsl:variable[@name='test']
(返回一个节点集)。这在 Firefox 和 IE 中都很好用,但它不适用于 XsltCompiledTransform - 它告诉我:
相对 URI 不支持此操作。
看起来错误发生在 XmlUrlResolver 中 - 我知道我可以通过其中一个自定义,但除此之外我不确定我应该在哪里寻找。谁能给我任何关于如何让这个表达式起作用的提示?如果需要,我很乐意使用一些 MSXSL 扩展——毕竟,代码只能在服务器端看到。
在更一般的说明上——执行这种 XPath 查询是否常见?我是否陷入了一些我不知道的巨大 XSLT 陷阱?它会做一些疯狂的事情,比如缓慢的网络浏览器停止运行吗?