XML Visual C++ .NET

#include "stdafx.h"
using namespace System;
using namespace System::Xml;
void Navigate(XmlNode ^node)
{
    if (node == nullptr)
        return;
    if (node->Value != nullptr && node->Value->Equals("D"))
    {
        if (node->ParentNode->ParentNode["Name"]->FirstChild->Value->Equals("G"))
        {
            node->Value = "S";
            node->ParentNode->Attributes["Damage"]->Value = "1d8";
        }
    }
    Navigate(node->FirstChild);
    Navigate(node->NextSibling);
}
void main()
{
    XmlDocument ^doc = gcnew XmlDocument();
    try{
        doc->Load("a.xml");
        XmlNode ^root = doc->DocumentElement; 
        Navigate(root);
        doc->Save("New.xml");
    }catch (Exception ^e){
        Console::WriteLine("Error Occurred: {0}", e->Message );
    }
}