Mega Code Archive

 
Categories / ASP.Net Tutorial / XML
 

Read xml and build page along with it

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="ReadXML" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server">    <title>Loading a DataSet with XML</title> </head> <body>    <form id="form1" runat="server">       <div id="container">          <h1>Loading a DataSet with XML</h1>          Enter the filename or the URL for the XML to be loaded:<br />          <asp:TextBox ID="txtXML" runat="server" Columns="60"/>          <asp:Button ID="btnLoad" runat="server" Text="Load XML" OnClick="btnLoad_Click" />          <asp:Panel ID="panData" runat="server">          Below you will see a list of <code>GridView</code> controls, one for each of the <code>DataTable</code>s generated from the XML          <asp:PlaceHolder ID="phData" runat="server" />                         </asp:Panel>          <hr />          <asp:Label ID="labMsg" runat="server" CssClass="error"/>        </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.IO; using System.Xml; public partial class ReadXML : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {       if (!IsPostBack)       {          panData.Visible = false;          txtXML.Text = "Data.xml";       }    }    protected void btnLoad_Click(object sender, EventArgs e)    {       panData.Visible = true;       string path = "";       labMsg.Text = "";       try       {          DataSet ds1 = new DataSet();          path = txtXML.Text;                   if (!path.StartsWith("http", StringComparison.CurrentCultureIgnoreCase))             path = Server.MapPath(path);                    XmlTextReader xtr = new XmlTextReader(path);          ds1.ReadXml(xtr, XmlReadMode.InferSchema);          foreach (DataTable table in ds1.Tables)          {             Literal caption = new Literal();             caption.Text = "<h2>Table: " + table.TableName + "</h2>";             phData.Controls.Add(caption);             GridView grid = new GridView();             grid.CellPadding = 3;             grid.DataSource = table.DefaultView;             grid.DataBind();             phData.Controls.Add(grid);          }       }       catch (IOException)       {          panData.Visible = false;          labMsg.Text = txtXML.Text + " not found";       }       catch       {          panData.Visible = false;          labMsg.Text = path + " unable to be accessed";       }    } } File: Data.xml <?xml version="1.0" ?> <NavMenu title="GameSystems">    <MenuItem title="PC" icon="images/icon_4.gif" >       <Games>          <Game>             <name>Game 1</name>             <price>free</price>          </Game>          <Game>             <name>Game 2</name>             <price>14.99</price>          </Game>       </Games>    </MenuItem>    <MenuItem title="Mac" icon="images/icon_3.gif" >       <Games>          <Game>             <name>Game 3</name>             <price>49.99</price>          </Game>       </Games>               </MenuItem> </NavMenu>