Visual C++ .NET/XML/XmlNodeType
Get xml node type
#include "stdafx.h"
#using <system.xml.dll>
using namespace System;
using namespace System::Xml;
void main()
{
XmlReader ^reader;
reader = XmlReader::Create("..\\Monsters.xml");
while (reader->Read()){
switch (reader->NodeType)
{
case XmlNodeType::Comment:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Value);
break;
case XmlNodeType::Element:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
if (reader->HasAttributes)
{
while (reader->MoveToNextAttribute())
{
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
Console::WriteLine(reader->Value);
}
reader->MoveToElement();
}
if (reader->IsEmptyElement)
{
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
}
break;
case XmlNodeType::EndElement:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
break;
case XmlNodeType::Text:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Value);
break;
case XmlNodeType::XmlDeclaration:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
if (reader->HasAttributes)
{
while (reader->MoveToNextAttribute())
{
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
Console::WriteLine(reader->Value);
}
}
reader->MoveToElement();
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
break;
case XmlNodeType::Whitespace:
break;
default:
Console::WriteLine("***UKNOWN*** node");
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
Console::WriteLine(reader->Value);
}
}
}
Is empty element
#include "stdafx.h"
#using <system.xml.dll>
using namespace System;
using namespace System::Xml;
void main()
{
XmlReader ^reader;
reader = XmlReader::Create("..\\Monsters.xml");
while (reader->Read()){
switch (reader->NodeType)
{
case XmlNodeType::Comment:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Value);
break;
case XmlNodeType::Element:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
if (reader->HasAttributes)
{
while (reader->MoveToNextAttribute())
{
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
Console::WriteLine(reader->Value);
}
reader->MoveToElement();
}
if (reader->IsEmptyElement)
{
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
}
break;
case XmlNodeType::EndElement:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
break;
case XmlNodeType::Text:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Value);
break;
case XmlNodeType::XmlDeclaration:
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
if (reader->HasAttributes)
{
while (reader->MoveToNextAttribute())
{
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
Console::WriteLine(reader->Value);
}
}
reader->MoveToElement();
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
break;
case XmlNodeType::Whitespace:
break;
default:
Console::WriteLine("***UKNOWN*** node");
Console::WriteLine(reader->Depth);
Console::WriteLine(reader->Name);
Console::WriteLine(reader->Value);
}
}
}