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) 參數或擴展對象。
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" />
 
<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>