ASP.NET Tutorial/XML/DataSet
DataSet to XML
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DataSetToXml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Xml ID="XmlControl" runat="server"></asp:Xml>
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Xml;
using System.Web.Configuration;
public partial class DataSetToXml : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connectionString = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
string SQL = "SELECT * FROM authors WHERE city="Oakland"";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(SQL, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet("AuthorsDataSet");
con.Open();
adapter.Fill(ds, "AuthorsTable");
con.Close();
XmlDataDocument dataDoc = new XmlDataDocument(ds);
XmlControl.Document = dataDoc;
XmlControl.TransformSource = "authors.xslt";
}
}
File: Web.config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.ru/.NetConfiguration/v2.0">
<appSettings/>
<connectionStrings>
<add name="Pubs" connectionString="Data Source=localhost;Initial Catalog=pubs;Integrated Security=SSPI"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
File: authors.xslt
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="AuthorsDataSet">
<h1>The Author List</h1>
<xsl:apply-templates select="AuthorsTable"/>
<i>Created through XML and XSLT</i>
</xsl:template>
<xsl:template match="AuthorsTable">
<b>Name: </b><xsl:value-of select="au_lname"/>, <xsl:value-of select="au_fname"/>
<br/>
<b>Phone: </b> <xsl:value-of select="phone"/>
</xsl:template>
</xsl:stylesheet>
Read XML file and feed into DataSet
<%@ Import namespace="System.Data" %>
<html>
<head>
<title>Read XML file</title>
</head>
<body>
<H2>Read XML file</H2>
<asp:Label id="lblXMLFileName" runat="server" /><BR/><BR/>
<asp:DataGrid id="dgServers" runat="server" />
</body>
</html>
<script language="VB" runat="server">
Sub Page_Load(Source As Object, E As EventArgs)
Dim strXMLFile As String = Server.MapPath("Data.xml")
lblXMLFileName.Text = strXMLFile
Dim objDataSet As New DataSet()
objDataSet.ReadXml(strXMLFile)
dgServers.DataSource = objDataSet.Tables(0).DefaultView
dgServers.DataBind()
End Sub
</script>
File: ~\Data.xml
<?xml version="1.0" standalone="yes"?>
<CarList>
<Car>
<ModelName>A</ModelName>
<Doors>2</Doors>
<ColorList>
<Color>A</Color>
<Color>B</Color>
<Color>C</Color>
</ColorList>
</Car>
<Car>
<ModelName>B</ModelName>
<Doors>3</Doors>
<ColorList>
<Color>D</Color>
<Color>E</Color>
<Color>F</Color>
</ColorList>
</Car>
</CarList>