Декларативный синтаксис серверного веб-элемента управления Xml
Обновлен: Ноябрь 2007
Отображает документ 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.
Свойство |
Описание |
---|---|
Определяет документ XML с помощью объекта XmlDocument. |
|
Определяет документ XML с помощью строки.
Примечание.
Обычно это свойство задается декларативно путем помещения текста между открывающими и закрывающими тегами <asp:Xml> элемента управления Xml.
|
|
Определяет документ XML с помощью файла. |
Примечание. |
---|
Необходимо установить, по крайней мере, одно из свойств документа XML; в противном случае документ XML не отображается. Если определено более одного свойства документа XML, отображается документ XML, указанный в свойстве, которое было определено последним. Документы в других свойствах игнорируются. |
При необходимости можно также указать документ XSL-преобразования, выполняющий форматирование документа XML перед его записью в выходной поток, посредством определения одного из двух свойств. Два свойства представляют различные типы документов XSL-преобразования, которые можно использовать для форматирования документа XML. Документ XML можно форматировать с помощью элемента XslTransform или с помощью файла XSL-преобразования, определив соответствующее свойство. Если не указано ни одного документа XSL-преобразования, документ XML отображается в формате, установленном по умолчанию. В следующей таблице перечислены свойства, определяющие документ XSL-преобразования.
Свойство |
Описание |
---|---|
Форматирует документ XML с помощью указанного объекта XslTransform. |
|
Форматирует документ XML с помощью указанного файла XSL-преобразования. |
Примечание. |
---|
Использование документа 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 для отображения примера файла XML с помощью примера файла XSL-преобразования. Обратите внимание, что пример файла 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>
В следующем примере демонстрируется создание объектов XmlDocument и XslTransform на примере тех же файлов XML и XSL-преобразования. Объекты затем используются элементом управления 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>