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 文件的屬性。
屬性 |
描述 |
||
---|---|---|---|
使用 XmlDocument 物件設定 XML 文件。 |
|||
使用字串來設定 XML 文件。
|
|||
使用檔案來設定 XML 文件。 |
注意事項: |
---|
至少必須設定一種 XML 文件屬性,否則將無法顯示 XML 文件。如果設定了一種以上的 XML 文件屬性,會顯示最後設定之屬性中的 XML 文件,其他屬性中的文件則會被忽略。 |
您也可以選擇性地設定兩種屬性中的某一種,藉以指定會在 XML 文件被寫入至輸出資料流之前將它格式化的 XSL 轉換文件。這兩種屬性表示了可以用來格式化 XML 文件的兩種不同類型 XSL 轉換文件。可藉由設定適當的屬性,以 XslTransform 或 XSL 轉換檔案格式化 XML 文件。如果沒有指定 XSL 轉換文件,XML 文件便會使用預設格式來顯示。下表所列就是用來指定 XSL 轉換文件的屬性。
屬性 |
描述 |
---|---|
使用指定的 XslTransform 格式化 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。
<%@ 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>