Материал из .Net Framework эксперт
Displaying XML Data in Nested DataList Controls
<%--
Code Revised from
Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback)
by Thiru Thangarathinam
# Publisher: Wrox (January 18, 2006)
# Language: English
# ISBN: 0764596772
--%>
<%@ Page Language="C#" %>
<html>
<head>
<title>Displaying XML Data in Nested DataList Controls</title>
</head>
<body>
<form runat="server">
<h1>Bookstore: Fiction</h1>
<asp:XmlDataSource id="MySource" DataFile="Bookstore.xml"
XPath="bookstore/genre[@name="Fiction"]/book" runat="server"/>
<asp:DataList id="DataList1" DataSourceId="MySource" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
<img src="<%# XPath("@ISBN") + ".jpg" %>">
</td>
<td>
<h4><%# XPath("@Title") %></h4>
<b>ISBN:</b> <%# XPath("@ISBN") %><br>
<b>Price:</b> <%# XPath("@Price") %><br>
</td>
</tr>
</table>
<asp:DataList id="DataList2" DataSource="<%# XPathSelect("chapter") %>" runat="server">
<ItemTemplate>
<br>
<u>
Chapter <%# XPath("@num") %>:
<%# XPath("@name") %>
</u>
<br>
<%# XPath(".") %>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>
<%--
<bookstore>
<genre name="Fiction">
<book ISBN="10-861003-324" Title="title 1" Price="19.99">
<chapter num="1" name="Introduction">
A
</chapter>
<chapter num="2" name="Body">
B
</chapter>
<chapter num="3" name="Conclusion">
C
</chapter>
</book>
<book ISBN="1-861001-57-5" Title="title " Price="24.95">
<chapter num="1" name="Introduction">
D
</chapter>
<chapter num="2" name="Body">
E
</chapter>
<chapter num="3" name="Conclusion">
F
</chapter>
</book>
</genre>
<genre name="NonFiction">
<book ISBN="10-861003-324" Title="title 2" Price="19.99">
<chapter num="1" name="Introduction">
G
</chapter>
<chapter num="2" name="Body">
H
</chapter>
<chapter num="3" name="Conclusion">
I
</chapter>
</book>
<book ISBN="1-861001-57-6" Title="title 3" Price="27.95">
<chapter num="1" name="Introduction">
J
</chapter>
<chapter num="2" name="Body">
K
</chapter>
<chapter num="3" name="Conclusion">
L
</chapter>
</book>
</genre>
</bookstore>
--%>
<%--
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="bookstore">
<bookstore>
<xsl:apply-templates select="genre"/>
</bookstore>
</xsl:template>
<xsl:template match="genre">
<genre>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:apply-templates select="book"/>
</genre>
</xsl:template>
<xsl:template match="book">
<book>
<xsl:attribute name="ISBN">
<xsl:value-of select="@ISBN"/>
</xsl:attribute>
<xsl:element name="title">
<xsl:value-of select="title"/>
</xsl:element>
<xsl:element name="price">
<xsl:value-of select="price"/>
</xsl:element>
<xsl:apply-templates select="chapters/chapter" />
</book>
</xsl:template>
<xsl:template match="chapter">
<chapter>
<xsl:attribute name="num">
<xsl:value-of select="@num"/>
</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:apply-templates/>
</chapter>
</xsl:template>
</xsl:stylesheet>
--%>