Mega Code Archive

 
Categories / ASP.Net Tutorial / XML
 

Recursively load XML document with DOM

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="XmlDOM" %> <!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:Literal id="XmlText" runat="server"></asp:Literal>&nbsp;     </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; using System.Text; public partial class XmlDOM : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {     string xmlFile = Server.MapPath("Data.xml");     XmlDocument doc = new XmlDocument();     doc.Load(xmlFile);     XmlText.Text = GetChildNodesDescr(doc.ChildNodes, 0);     }   private string GetChildNodesDescr(XmlNodeList nodeList, int level)   {     string indent = "";     for (int i = 0; i < level; i++)       indent += "&nbsp; &nbsp; &nbsp;";     StringBuilder str = new StringBuilder("");     foreach (XmlNode node in nodeList)     {       switch (node.NodeType)       {         case XmlNodeType.XmlDeclaration:           str.Append("XML Declaration: <b>");           str.Append(node.Name);           str.Append(" ");           str.Append(node.Value);           str.Append("</b><br>");           break;         case XmlNodeType.Element:           str.Append(indent);           str.Append("Element: <b>");           str.Append(node.Name);           str.Append("</b><br>");           break;         case XmlNodeType.Text:           str.Append(indent);           str.Append(" - Value: <b>");           str.Append(node.Value);           str.Append("</b><br>");           break;         case XmlNodeType.Comment:           str.Append(indent);           str.Append("Comment: <b>");           str.Append(node.Value);           str.Append("</b><br>");           break;       }       if (node.Attributes != null)       {         foreach (XmlAttribute attrib in node.Attributes)         {           str.Append(indent);           str.Append(" - Attribute: <b>");           str.Append(attrib.Name);           str.Append("</b> Value: <b>");           str.Append(attrib.Value);           str.Append("</b><br>");         }       }       if (node.HasChildNodes)         str.Append(GetChildNodesDescr(node.ChildNodes, level + 1));     }     return str.ToString();   }  } File: Data.xml <?xml version="1.0"?> <DvdList>    <DVD ID="1" Category="Category 1">       <Title>title 1</Title>       <Director>directory 2</Director>       <Price>1</Price>       <Starring>          <Star>star 1</Star>          <Star>star 2</Star>       </Starring>    </DVD>    <DVD ID="2" Category="Category 2">       <Title>title 2</Title>       <Director>directory 2</Director>       <Price>2</Price>       <Starring>          <Star>star 3</Star>          <Star>star 4</Star>       </Starring>    </DVD> </DvdList>