共用方式為


Xml Web 伺服器控制項宣告式語法

更新:2007 年 11 月

顯示 XML 文件或 XSL 轉換的結果。

 <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 文件的屬性。

屬性

描述

Document

使用 XmlDocument 物件設定 XML 文件。

DocumentContent

使用字串來設定 XML 文件。

注意事項:

這個屬性通常是以宣告方式設定,其方式是將文字放置在 Xml 控制項的開頭和結尾 <asp:Xml> 標記之間。

DocumentSource

使用檔案來設定 XML 文件。

注意事項:

至少必須設定一種 XML 文件屬性,否則將無法顯示 XML 文件。如果設定了一種以上的 XML 文件屬性,會顯示最後設定之屬性中的 XML 文件,其他屬性中的文件則會被忽略。

您也可以選擇性地設定兩種屬性中的某一種,藉以指定會在 XML 文件被寫入至輸出資料流之前將它格式化的 XSL 轉換文件。這兩種屬性表示了可以用來格式化 XML 文件的兩種不同類型 XSL 轉換文件。可藉由設定適當的屬性,以 XslTransform 或 XSL 轉換檔案格式化 XML 文件。如果沒有指定 XSL 轉換文件,XML 文件便會使用預設格式來顯示。下表所列就是用來指定 XSL 轉換文件的屬性。

屬性

描述

Transform

使用指定的 XslTransform 格式化 XML 文件。

TransformSource

使用指定的 XSL 轉換檔案來格式化 XML 文件。

注意事項:

XSL 轉換文件是選擇性的。您不必設定 TransformTransformSource 屬性。如果同時設定了這兩個 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 轉換檔案建立 XmlDocumentXslTransform 物件。然後,Xml 控制項即可使用這些物件顯示 XML 文件。請確定範例 XML 檔案名為 People.xml,而且範例 XSL 轉換檔案名為 Peopletable.xsl。

<%@ 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>
<%@ 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>

請參閱

參考

Xml

其他資源

Web 伺服器控制項語法