Xml Web サーバー コントロール
XML ドキュメントまたは XSL Transform の結果を表示します。
<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 Transform の結果を表示できます。
表示する XML ドキュメントを指定するには、次の 3 つのプロパティのいずれかを設定します。これらの 3 つのプロパティは、表示できる各種の XML ドキュメントを表します。適切なプロパティを設定することで、System.Xml.XmlDocument、XML 文字列、または XML ファイルを表示できます。XML ドキュメントを指定するためのプロパティを次の表に示します。
プロパティ | 説明 |
---|---|
Document | System.Xml.XmlDocument オブジェクトを使用して、XML ドキュメントを設定します。 |
DocumentContent | 文字列を使用して、XML ドキュメントを設定します。
メモ 通常、このプロパティは、Xml コントロールの開始 <asp:Xml> タグと終了 <asp:Xml> タグの間にテキストを挿入することにより、宣言によって設定します。 |
DocumentSource | ファイルを使用して、XML ドキュメントを設定します。 |
メモ 少なくとも 1 つの XML ドキュメント プロパティを設定する必要があります。設定しないと、XML ドキュメントは表示されません。複数の XML ドキュメント プロパティを設定した場合は、最後に設定されたプロパティの XML ドキュメントが表示されます。他のプロパティのドキュメントは無視されます。
必要に応じて、XML ドキュメントを出力ストリームに書き込む前に、その書式を設定する XSL Transform ドキュメントを指定できますが、その場合は次の 2 つのプロパティのいずれかを指定します。この 2 つのプロパティは、XML ドキュメントの書式を設定するために使用できる、異なる種類の XSL Transform ドキュメントを表します。適切なプロパティを設定することで、System.Xml.Xsl.XslTransform または XSL Transform ファイルを使用して XML ドキュメントの書式を設定できます。XSL Transform ドキュメントが指定されていない場合、XML ドキュメントは既定の書式で表示されます。XSL Transform ドキュメントを指定するためのプロパティを次の表に示します。
プロパティ | 説明 |
---|---|
Transform | 指定した System.Xml.Xsl.XslTransform を使用して、XML ドキュメントの書式を指定します。 |
TransformSource | 指定した XSL Transform ファイルを使用して、XML ドキュメントの書式を設定します。 |
メモ XSL Transform ドキュメントは省略できます。Transform プロパティおよび TransformSource プロパティは必ず設定する必要があるわけではありません。両方の XSL Transform ドキュメント プロパティが設定されている場合は、最後に設定されたプロパティによって、XML ドキュメントの書式設定に使用する XSL Transform ドキュメントが決まります。その他のプロパティは無視されます。
Xml クラスには、XSL Transform に省略可能な引数を指定するために使用できる TransformArgumentList プロパティも用意されています。引数は、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 Transform ファイルを次に示します。
<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 Transform ファイルを使用して、上のサンプル XML ファイルを表示する方法を次の例に示します。サンプル XML ファイルは People.xml で、サンプル XSL Transform ファイルは 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 Transform ファイルから XmlDocument オブジェクトおよび XslTransform オブジェクトを作成する方法を次の例に示します。作成されたオブジェクトを Xml コントロールで使用して、XML ドキュメントを表示します。サンプル XML ファイルは People.xml で、サンプル XSL Transform ファイルは 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>