XMLプログラミング

XMLとは、文書やデータの意味や構造を記述するためのマークアップ言語の一つ。マークアップ言語とは、「タグ」と呼ばれる特定の文字列で地の文に情報の意味や構造、装飾などを埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できる。XMLにより統一的な記法を用いながら独自の意味や構造を持ったマークアップ言語を作成することができるため、ソフトウェア間の通信・情報交換に用いるデータ形式や、様々な種類のデータを保存するためのファイルフォーマットなどの定義に使われている。

XmlDocumentクラスには、ファイルからXMLデータを読み込むLoad関数と、ファイルにXMLデータを書き出すSave関数がある。この2つを使いXML文書をファイルに保存、読み込むことができる。サンプルコードを以下に示す。

XmlDocument^ doc= gcnew XmlDocument();//宣言
doc->Load(filename); //filenameのファイルを読み込む。
doc->Save(filename); //filenameのファイルを書き出す。

System::Xml名前空間にあるDOMを扱うクラスライブラリの1つである。XMLの要素を扱うクラスである。ノードや子ノードの追加を行うのに使用した。サンプルコードを以下に示す。

XmlDocument^ doc=gcnew XmlDocument();//宣言
doc->AppendChild(doc->CreateXmlDeclaration("1.0","UTF-8",nullptr)); //Xmlの設定
XmlElement^ root=doc->CreateElement("猫");//ノード
doc->AppendChild(root); //docにノードの追加
XmlElement^ node= doc->CreateElement("猫の名前");ノードの作成
XmlElement^ cat1=doc->CreateElement("猫1");//ノードの作成
cat1->AppendChild(doc->CreateTextNode("猫1の名前"));//「猫1」ノードのテキスト設定
node->AppendChild(cat1); //「猫の名前」ノードの子ノードとして「猫1」ノードを追加
XmlElement^ cat2=doc->CreateElement("猫2");///ノードの作成
cat2->AppendChild(doc->CreateTextNode("猫2の名前"));//「猫2」ノードのテキスト設定
node->AppendChild(cat2); //「猫2の名前」ノードの子ノードとして「猫1」ノードを追加
root->AppendChild(node); 「猫」ノードの子ノードとして「猫の名前」ノードを追加
doc->Save("cat.xml");//cat.xmlファイルを書き出す。