如果曾经编写过 ASP 页面的话,您很可能从事过两项活动:从一些外部资源中读取信息,以及将其他(通常为修改过的)信息保存到一些其他资源中,这些其他资源对发送到客户端的最终输出只起次要作用。其中一些是状态信息 - 例如可能来自查询字符串请求的存储信息 - 但是在其他情况下,您会通过以 post 方式提交的表单或存储文件来更新数据库。
当我开始使用更低版本的 XSL(基于 Microsoft 1998 年 12 月针对 XSL 与 XML 模式而提交的版本),我很快意识到了它在从根本上简化输出代码生产方面所具有的能力。 XSL筛选器(即样式表)能够将数据库调用转换成一个表,安全地合并公式化的 HTML 代码,甚至还可以执行简单的处理任务。
但是,对于处理严重、繁多的任务,XSL 有一些局限性。最大的问题是参数问题;如果不是非常熟悉样式表中的基础代码,就不会有更改 XSL 结构的清晰方法。通常情况下,将信息传递到 XSLT 转换的唯一途径是在 XML 输入中添加参数。另一个问题是在内部保留有关处理器当前状态的信息。如果有将被发送到输出流的 XML 标记,您则不能将这个标记临时保存并在多处使用。最后,没有在 XSL 环境本身中保存状态的真正途径;您必须从 XSL 转换中获取结果,使用文档对象模型 (DOM) 调用将它筛选出来,并有效地放弃任何在筛选器中可能发生的中间状态。