共用方式為


Xml Web 伺服器控制項

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

<asp:Xmlid="Xml1"     Document="XmlDocument object to display"     DocumentContent="String of XML"     DocumentSource="Path to XML Document"     Transform="XslTransform object"     TransformSource="Path to XSL Transform Document"     runat="server">

備註

使用 Xml 控制項來顯示 XML 文件的內容或 XSL 轉換的結果。

要顯示的 XML 文件是藉由設定三項屬性中的某一項來設定。這三項屬性代表了可以顯示的不同類型 XML 文件。您可以設定適當的屬性來顯示 System.Xml.XmlDocument、XML 字串或 XML 檔案。下表所列就是用來指定 XML 文件的屬性。

屬性 說明
Document 使用 System.Xml.XmlDocument 物件設定 XML 文件。
DocumentContent 使用字串來設定 XML 文件。
注意   這個屬性通常是以宣告方式設定,方式是將文字放置在 Xml 控制項的開頭和結尾 <asp:Xml> 標記之間。
DocumentSource 使用檔案來設定 XML 文件。

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

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

屬性 說明
Transform 使用指定的 System.Xml.Xsl.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>
[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>

請參閱

Web 伺服器控制項 | Xml 類別