Visual C++ .NET/XML/XPathNavigator
<source lang="csharp">
- 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>