当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Web服务器控件:XML控件

ASP.NET
为T-SQL添加intellisense功能
SQL Server 2005安装过程中出现错误的解决办法
SQL Server 2005 RTM 安装错误 :The SQL Server System Configuration Checker cannot be executed due to
有关于JSON的一些资料
不能忽略c#中的using和as操作符的用处
JavaScript系列之―同步还是异步?
获取远程网页的内容之一(downmoon原创)
获取远程网页的内容之二(downmoon原创)
ASP.Net中防止刷新自动触发事件的解决方案
asp.net下用js实现鼠标移至小图,自动显示相应大图
Asp.Net 和 AJAX.Net 的区别
提交页面的定位--scrollIntoView的用法
利用AJAX与数据岛实现无刷新绑定
asp.net下判断用户什么时候离开,以什么方式离开
DataSet 添加数据集、行、列、主键和外键等操作示例
读写xml所有节点个人小结 和 读取xml节点的数据总结
收藏的asp.net文件上传类源码
asp.net下GDI+的一些常用应用(水印,文字,圆角处理)技巧
一个可以让.net程序在非WIN平台上运行的软件Mono
使用ASP.NET 2.0 CSS 控件适配器生成CSS友好的HTML输出

ASP.NET 中的 Web服务器控件:XML控件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 117 ::
收藏到网摘: n/a

阅读此文请先查看软晨学习网的:ASP.NET入门教程:Web服务器控件,简单讲述了Web服务器控件的使用方法。

定义和用法

XML 控件用于显示 XML 文档或 XSL 转换的结果。

属性

通过设置 Document、DocumentContent 或 DocumentSource 这三个属性之一来指定要显示的 XML 文档。这三个属性表示可以显示的不同类型的 XML 文档。通过设置适当的属性,可以显示 System.Xml.XmlDocument、XML 字符串或 XML 文件。

通过设置 Transform、TransformSource 这两个属性之一,可以选择指定 XSL 转换 (XSLT) 样式表,该样式表在 XML 文档被写入输出流之前对其进行格式化。这两个属性表示可用于格式化 XML 文档的不同类型的 XSL 转换样式表。通过设置适当的属性,可以用 System.Xml.Xsl.XslCompiledTransform 对象或 XSL 转换样式表文件来格式化 XML 文档。如果未指定 XSL 转换样式表,则使用默认格式显示 XML 文档。

Xml 类还提供 TransformArgumentList 属性,该属性使您得以提供具有可选参数的 XSL 转换样式表。这些参数可以是 XSL 转换 (XSLT) 参数或扩展对象。

属性 描述 .NET
Document 不赞成使用。规定使用 System.Xml.XmlDocument 对象的 XML 文档。 1.0
DocumentContent 规定 XML 字符串。 1.0
DocumentSource 规定在 Xml 控件中显示的 XML 文档的路径。 1.0
runat 规定该控件是服务器控件。必须设置为 "server"。 1.0
Transform 使用 System.Xml.Xsl.XslTransform 对象来格式化 XML 文档。 1.0
TransformArgumentList 包含传递给样式表并在扩展样式表语言转换 (XSLT) 中使用的可选参数列表。  
TransformSource 规定 XSL 转换文件的路径。  
XPathNavigator 用于导航和编辑与 Xml 控件关联的 XML 数据的光标模型。  

控件标准属性

AppRelativeTemplateSourceDirectory, BindingContainer, ClientID, Controls,
EnableTheming, EnableViewState, ID, NamingContainer, Page, Parent, Site,
TemplateControl, TemplateSourceDirectory, UniqueID, Visible

语法

<asp:Xml
    DocumentSource="uri"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
    SkinID="string"
    TransformSource="string"
    Visible="True|False"
/>

备注:使用 Xml 控件显示 XML 文档的内容或 XSL 转换的结果。

要显示的 XML 文档通过设置三个属性之一来指定。这三个属性表示可以显示的 XML 文档的不同类型。通过设置适当的属性,可以显示 XmlDocument、XML 字符串或 XML 文件。

注意:必须至少设置一个 XML 文档属性,否则将不会显示任何 XML 文档。如果设置了多个 XML 文档属性,则显示所设置的最后一个属性中的 XML 文档。其他属性中的文档将被忽略。

还可根据需要通过设置两个属性之一来指定 XSL 转换文档,该文档在将 XML 文档写入输出流之前对其进行格式化。这两个属性表示可用于格式化 XML 文档的 XSL 转换文档的不同类型。通过设置适当的属性,可以使用 XslTransform 或 XSL 转换文件格式化 XML 文档。如果未指定任何 XSL 转换文档,则使用默认格式显示 XML 文档。

注意:XSL 转换文档是可选的。不需要设置 Transform 或 TransformSource 属性。如果同时设置了两个 XSL 转换文档属性,则所设置的最后一个属性将确定使用哪个 XSL 转换文档格式化 XML 文档。另一个属性将被忽略。

Xml 类还提供了 TransformArgumentList 属性,您可以使用该属性为 XSL 转换提供可选参数。这些参数可以是 XSLT 参数或者是扩展对象。

示例

以下内容显示一个示例 XML 文件。

<People>
   <Person>
      <Name>
         <FirstName>Joe</FirstName>
         <LastName>Suits</LastName>
      </Name>
      <Address>
         <Street>1800 Success Way</Street>
         <City>Redmond</City>
         <State>WA</State>
         <ZipCode>98052</ZipCode>
      </Address>
      <Job>
         <Title>CEO</Title>
         <Description>Wears the nice suit</Description>
      </Job>
   </Person>
   <Person>
      <Name>
         <FirstName>Linda</FirstName>
         <LastName>Sue</LastName>
      </Name>
      <Address>
         <Street>1302 American St.</Street>
         <City>Paso Robles</City>
         <State>CA</State>
         <ZipCode>93447</ZipCode>
      </Address>
      <Job>
         <Title>Attorney</Title>
         <Description>Stands up for justice</Description>
      </Job>
   </Person>
   <Person>
      <Name>
         <FirstName>Jeremy</FirstName>
         <LastName>Boards</LastName>
      </Name>
      <Address>
         <Street>34 Palm Avenue</Street>
         <City>Waikiki</City>
         <State>HI</State>
         <ZipCode>98052</ZipCode>
      </Address>
      <Job>
         <Title>Pro Surfer</Title>
         <Description>Rides the big waves</Description>
      </Job>
   </Person>
   <Person>
      <Name>
         <FirstName>Joan</FirstName>
         <LastName>Page</LastName>
      </Name>
      <Address>
         <Street>700 Webmaster Road</Street>
         <City>Redmond</City>
         <State>WA</State>
         <ZipCode>98073</ZipCode>
      </Address>
      <Job>
         <Title>Web Site Developer</Title>
         <Description>Writes the pretty pages</Description>
      </Job>
   </Person>
</People>

以下内容显示一个示例 XSL 转换文件。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/People">
      <xsl:apply-templates select="Person" />
   </xsl:template> 
   <xsl:template match="Person">
      <table width="100%" border="1">
         <tr>
            <td>
               <b>
                  <xsl:value-of select="Name/FirstName" />
                  &#160;
                  <xsl:value-of select="Name/LastName" />
               </b>
            </td>
         </tr>
         <tr>
            <td>
               <xsl:value-of select="Address/Street" /><br />
               <xsl:value-of select="Address/City" />
               ,
               <xsl:value-of select="Address/State" />
               <xsl:value-of select="Address/Zip" />
            </td>
         </tr>
         <tr>
            <td>
               Job Title: <xsl:value-of select="Job/Title" /><br />
               Description: <xsl:value-of select="Job/Description" />
            </td>
         </tr>
      </table>
   </xsl:template>
   <xsl:template match="bookstore">
      <!-- Prices and books -->
      <bookstore>
         <xsl:apply-templates select="book"/>
      </bookstore>
   </xsl:template>
   <xsl:template match="book">
      <book>
         <xsl:attribute name="ISBN">
            <xsl:value-of select="@ISBN"/>
         </xsl:attribute>
         <price>
            <xsl:value-of select="price"/>
         </price>
         <xsl:text>
         </xsl:text>
      </book>
   </xsl:template>
</xsl:stylesheet>

下面的示例演示如何通过 Xml 控件来使用示例 XSL 转换文件显示示例 XML 文件。请确保示例 XML 文件名为 People.xml,示例 XSL 转换文件名为 Peopletable.xsl。

<html>
<body>
   <h3>Xml Example</h3>
   <form runat="server">
      <asp:Xml id="xml1"
           DocumentSource="people.xml"
           TransformSource="peopletable.xsl"
           runat="server" />
   </form>
</body>
</html>

下面的示例演示如何从示例 XML 和 XSL 转换文件创建 XmlDocument 和 XslTransform 对象。然后,Xml 控件使用这两个对象显示 XML 文档。请确保示例 XML 文件名为 People.xml,示例 XSL 转换文件名为 Peopletable.xsl。

Visual Basic

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script runat="server">
      Sub Page_Load(sender As Object, e As EventArgs)
         Dim doc As XmlDocument = New XmlDocument()
         doc.Load(Server.MapPath("people.xml"))
         Dim trans As XslTransform = new XslTransform()
         trans.Load(Server.MapPath("peopletable.xsl"))
         xml1.Document = doc
         xml1.Transform = trans
      End Sub
</script>
<body>
   <h3>Xml Example</h3>
   <form runat="server">
      <asp:Xml id="xml1" runat="server" />
   </form>
</body>
</html>

C#

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script runat="server">
      void Page_Load(Object sender, EventArgs e)
      {
         XmlDocument doc = new XmlDocument();
         doc.Load(Server.MapPath("people.xml"));
         XslTransform trans = new XslTransform();
         trans.Load(Server.MapPath("peopletable.xsl"));

         xml1.Document = doc;
         xml1.Transform = trans;
      }
   </script>
<body>
   <h3>Xml Example</h3>
      <form runat="server">
         <asp:Xml id="xml1" runat="server" />
      </form>
</body>
</html>