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

ASP.NET
使用C# 开发掩码输入文本框
点击DataGrid的列标头在DataGrid最后一行显示该列的和
ASP.NET之Web打印-终极解决篇
SQL Server 2000 Reporting Services: 怎样根据用户的语言偏好显示本地化的信息
利用底层键盘钩子拦载任意按键(回调版)
如何禁止调整自定义控件的尺寸?
用VB6.0编写磁盘格式化程序
Aspx中导Excel
ASP.NET组件设计Step by Step(3)
下面真正开始讲事件的内容
如何有效的使用C#读取文件
如何在C#中加载自己编写的动态链接库(DLL)
Managed DirectX 相关(DirectX.Capture Class Library && DirectShow.NET)
XQuery Reference-from w3schools.com
[译]Visual Basic 2005在语言上的增强(十三)显式的数组范围及小结
lucene的首次应用
[VBA]在后台删除工作表后出现的怪问题
VB.NET 数据库查询 [SQL字符串的生成]
JavaScript调用服务器事件
在Window2003上执行System.Diagnostics.Process.GetProcessesByName等方法失败的原因

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


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