Mega Code Archive

 
Categories / ASP.Net Tutorial / XML
 

Load data from XML

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="HolmesQuote" %> <!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>          </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.Xml; public partial class HolmesQuote : System.Web.UI.Page {   protected void Page_Load(object sender, EventArgs e)   {     MyQuote quotes = new MyQuote(Server.MapPath("./Data.xml"));     Quotation quote = quotes.GetRandomQuote();     Response.Write("<b>" + quote.Source + "</b> (<i>" + quote.Date + "</i>)");     Response.Write("<blockquote>" + quote.QuotationText + "</blockquote>");          } } public class Quotation {   private string qsource;   private string date;   private string quotation;      public Quotation(XmlNode quoteNode)   {     if ( (quoteNode.SelectSingleNode("source")) != null)       qsource = quoteNode.SelectSingleNode("source").InnerText;     if ( (quoteNode.Attributes.GetNamedItem("date")) != null)       date = quoteNode.Attributes.GetNamedItem("date").Value;     quotation = quoteNode.FirstChild.InnerText;   }   public string Source   {     get      {       return qsource;     }     set      {       qsource = value;     }   }   public string Date   {     get      {       return date;     }     set      {       date = value;     }   }   public string QuotationText   {     get      {       return quotation;     }     set      {       quotation = value;     }   } } public class MyQuote {   private XmlDocument quoteDoc;   private int quoteCount;   public MyQuote(string fileName)   {     quoteDoc = new XmlDocument();     quoteDoc.Load(fileName);     quoteCount = quoteDoc.DocumentElement.ChildNodes.Count;   }   public Quotation GetRandomQuote()   {     int i;     Random x = new Random();     i = x.Next(quoteCount-1);     return new Quotation( quoteDoc.DocumentElement.ChildNodes[i] );   } } File: Data.xml <?xml version="1.0"?> <quotations>   <quotation date="1887">     <pre>A</pre>     <source>W</source>   </quotation>   <quotation date="1887">     <pre>t</pre>     <source>S</source>   </quotation> </quotations>