程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Web服務器控件:XML控件

Web服務器控件:XML控件

編輯:關於.NET

定義和用法

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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved