Visual C++ .NET/XML/XPathNavigator

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Move XPathNavigator to first child

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Xml; using namespace System::Xml::XPath; void Navigate(XPathNavigator ^nav, int depth) {

   Console::WriteLine(depth);
   Console::WriteLine(nav->NodeType.ToString());
   Console::WriteLine(nav->Name);
   Console::WriteLine(nav->Value);
   if (nav->HasAttributes)
   {
       nav->MoveToFirstAttribute();
       do {
           Console::WriteLine(nav->Name);
           Console::WriteLine(nav->Value);
       }
       while(nav->MoveToNextAttribute());
       nav->MoveToParent();
   }
   if (nav->MoveToFirstChild())
   {
       Navigate(nav, depth+1);
       nav->MoveToParent();
   }
   if (nav->MoveToNext())
       Navigate(nav, depth);

} void main() {

   XmlDocument ^doc = gcnew XmlDocument();
   try
   {
       doc->Load("..\\Monsters.xml");
       XPathNavigator ^nav = doc->CreateNavigator();
       nav->MoveToRoot();
       Navigate(nav, 0);
   }
   catch (Exception ^e)
   {
       Console::WriteLine("Error Occurred: {0}", e->Message);
   }

}

 </source>