如何:转换 XML Web 服务器控件中的 XML 数据

更新:2007 年 11 月

XSL 转换 (XSLT) 样式表(.xslt 或 .xsl 文件)用于将源 XML 文档的内容转换为专门适合于特定用户、媒介或客户端的表现形式。有两种方式转换 Xml Web 服务器控件中的 XML 数据:

  • 指向外部 .xslt 文件,这会自动向 XML 文档应用转换。

  • 将作为 XslTransform 类型的对象的转换应用到 XML 文档。

两种方法具有相同的结果,您的选择主要取决于在您的应用程序中使用哪一方法最方便。如果转换采用 .xsl 或 .xslt 文件的形式,加载该文件将很简便。如果转换采用对象的形式(可能通过其他进程将其传递到您的应用程序),则您可以将它作为对象应用。

35b30hy4.alert_note(zh-cn,VS.90).gif说明:

XslTransform 类还允许您将 .xsl 或 .xslt 文件加载到转换的实例中。

从文件应用转换

  1. 向 Web 窗体页添加一个 Xml 控件。

  2. Xml 控件的 TransformSource 属性设置为 XSLT 文档的路径。

    35b30hy4.alert_note(zh-cn,VS.90).gif说明:

    需要确保应用程序在运行时有足够的权限来读取 XML 文件。

    下面的代码示例演示如何应用从文件到名为 Xml1 的 Xml 控件的转换。

    Xml1.TransformSource = "mystyle.xsl"
    
    Xml1.TransformSource = "mystyle.xsl";
    

从 XslTransform 对象应用转换

  1. 创建 XslTransform 类的实例。

  2. Xml 控件的 Transform 属性设置为转换的实例。

    下面的代码示例演示如何创建转换类的实例并使用该实例将转换应用到一个对象上。在此示例中,XML 文档和事件都从文件读取,但在实际的应用程序中,这两个对象可以来自其他的组件。只要一加载该页就应用转换。

    Private Sub Page_Load(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles MyBase.Load
       Dim doc As System.Xml.XmlDocument = New System.Xml.XmlDocument()
       doc.Load(Server.MapPath("MySource.xml"))
       Dim trans As System.Xml.Xsl.XslTransform = _
          New System.Xml.Xsl.XslTransform
       trans.Load(Server.MapPath("MyStyle.xsl"))
       Xml1.Document = doc
       Xml1.Transform = trans
    End Sub
    
    private void Page_Load(object sender, System.EventArgs e)
    {
        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
        doc.Load(Server.MapPath("MySource.xml"));
        System.Xml.Xsl.XslTransform trans = new 
           System.Xml.Xsl.XslTransform();
        trans.Load(Server.MapPath("MyStyle.xsl"));
        Xml1.Document = doc;
        Xml1.Transform = trans;
    }
    

请参见

参考

XML Web 服务器控件概述