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

ASP.NET
获取字符串数组的最后一段字符
asp.net遍历目录文件夹和子目录所有文件
ASP.NET 中文显示之两种解决方法
asp.net替换和恢复html特殊字符
asp.net简化接收参数值的函数
asp.net验证一个字符串是否符合指定的正则表达式
asp.net求3位不同数字的组合数
C#(.NET)数据访问连接、查询、插入等操作的封装类
在ASP.NET2.0中通过Gmail发送邮件的代码
asp.net下配置数据源时出现: 未将对象引用设置到对象的实例。
asp.net gridview强制换行
asp.net gridview多页时的批量删除
未处理的事件"PageIndexChanging" 之解决方案
gridview调整单元格宽度的方法
aspx如果引用cs中的变量的方法
asp.net导出EXCEL的功能代码
asp.net注册Javascript的方法
Asp.Net 文件操作基类
Asp.Net+XML操作基类(修改,删除,新增,创建)
asp.net 获取指定文件夹下所有子目录及文件(树形)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 114 ::
收藏到网摘: 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>