Recursive navigation of the DOM tree : DOM « XML « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Visual C++ .NET » XML » DOM 
Recursive navigation of the DOM tree
 

#include "stdafx.h"

using namespace System;
using namespace System::Xml;


void Navigate(XmlNode ^node, int depth)
{
    if (node == nullptr)
        return;

    Console::WriteLine(depth);
    Console::WriteLine(node->NodeType.ToString());
    Console::WriteLine(node->Name);
    Console::WriteLine(node->Value);

    if (node->Attributes != nullptr)
    {
        for (int i = 0; i < node->Attributes->Count; i++)
        {
            Console::WriteLine(depth+1);
            Console::WriteLine(node->Attributes[i]->Name);
            Console::WriteLine(node->Attributes[i]->Value);
        }
    }
    Navigate(node->FirstChild, depth+1);
    Navigate(node->NextSibling, depth);
}


void main()
{
    XmlDocument ^doc = gcnew XmlDocument();
    try
    {
        XmlReader ^reader = XmlReader::Create("..\\Monsters.xml");
        doc->Load(reader);
        reader->Close();
        XmlNode ^node = doc->FirstChild;

        
        Navigate(node, 0);
    }
    catch (Exception ^e)
    {
        Console::WriteLine("Error Occurred: {0}", e->Message);
    }
}

   
  
Related examples in the same category
1.Update XML DOM
2.Write XML DOM
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.