许多ASP应用程序把它们的输出数据保存到一个或者多个XML文件中。XSLT文档把与浏览器无关的XML文件内容转换为与特定浏览器相关的HTML。这个转换过程一般用VBScript或者Jscrip代码完成,转化结果一般添加到输出流中。
ASP.NET由于新引入了<asp:xml>服务器控制(server control),所以实现上述的技术明显要更加容易和灵活。控制功能作为占位符直接插入到原来的XML文档的内容中形成了ASP.NET页。你可以控制逐字显示XML文档的内容或者显示XSLT转换的结果。
在.NET中,XslTransform类可以执行XSLT转换的功能。它接收源文件和样式表(style sheet)并返回XML或者HTML形式的结果。下面摘录的代码大致给出了使用这个类进行XSLT转化的过程:
XslTransform xslt = new XslTransform();<asp:xml>控制的操作方法和XslTransform类很相似,并且<asp:xml>控制在其内部使用XslTransform类。当你需要在Web页中嵌入XML文档时,你可以使用<asp:xml>控制。例如,当你需要创建可供客户端使用的XML数据岛(XML data islands)时,该控制就显得极为方便。下面摘录的代码演示了把服务器控制输出嵌入到客户<xml>标签中,这样Internet Explorer将会把它解释为XML数据岛。在这种情况下,XML源可以写成内联的形式:
xslt.Load(stylesheet);
xslt.Transform(source, output);
<xml id="theXml">你可以使用外部文件、字符串、甚至.NET XML文档对象模型的事件。
<asp:xml runat="server">
... xml data ...
</asp.xml>
</xml>
你可以通过文件或者预配置的XslTransform对象来确定样式表。转换的输出到Web页的输出流中。表A给出了<asp:xml>控制的功能(properties)。
表A
功能 |
说明 |
Document |
用XmlDocument获得或者设置XML源文档。 |
DocumentContent |
用字符串获得或者设置XML文档。 |
DocumentSource |
用文件获得或者设置XML文档。 |
Transform |
获得或者设置转换用的XslTransform类。 |
TransformSource |
获得或者设置转换用的样式表。 |
TransformArgumentList |
获得或者设置转换用到的参数表。 |