Visual C++ .NET/XML/XmlDocument
Содержание
<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>
Get first child from XMLDocument
<source lang="csharp">
- 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); }
}
</source>
Load xml document to XMLDocument
<source lang="csharp">
- 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); }
}
</source>
Move to the root of XMLDocument
<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>
Output xml tags
<source lang="csharp">
- include "stdafx.h"
using namespace System; using namespace System::Configuration; using namespace System::Data; using namespace System::Data::SqlClient; 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(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(); SqlConnection ^connect = gcnew SqlConnection(); connect->ConnectionString = "SQLConnection"; SqlDataAdapter ^dAdapt = gcnew SqlDataAdapter(); DataSet ^dSet = gcnew DataSet(); dAdapt->SelectCommand = gcnew SqlCommand("SELECT * FROM Authors", connect); dAdapt->Fill(dSet, "Authors"); XmlDataDocument ^doc1 = gcnew XmlDataDocument(dSet); Navigate(doc1->DocumentElement, 0);
}
</source>