Recursively load XML document with DOM : XMLDocument « XML « ASP.NET Tutorial

Home
ASP.NET Tutorial
1.ASP.Net Instroduction
2.Language Basics
3.ASP.net Controls
4.HTML Controls
5.Page Lifecycle
6.Response
7.Collections
8.Validation
9.Development
10.File Directory
11.Sessions
12.Cookie
13.Cache
14.Custom Controls
15.Profile
16.Configuration
17.LINQ
18.ADO.net Database
19.Data Binding
20.Ajax
21.Authentication Authorization
22.I18N
23.Mobile
24.WebPart
25.XML
ASP.Net
Silverlight
ASP.NET Open Source
ASP.NET Tutorial » XML » XMLDocument 
25.10.2.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>
25.10.XMLDocument
25.10.1.Append data to an XML file (VB.net)
25.10.2.Recursively load XML document with DOM
java2s.com  |  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.