![]() |
||
|
連載 .NETで簡単XML 第3回 XML文書を読み書きするプログラムの作成 |
||
|
Back Issue
|
||||
|
XML文書を読み込む
第2回 プログラムでXML文書を作成するでは、XML文書を書き出すプログラムを作成した。そこで、今回は読み込みに挑戦してみよう。XML文書を読み込む方法はいくつかあるが、今回はXmlReaderを使用する。
XML文書を読み込むプログラムは、書き出すプログラムに比べると作るのが難しい。なぜなら、書き出すときには項目の並び順をプログラム側で強制できるのに対して、既存のXML文書を読み込む際には、どんな項目がどんな順番で並んでいるのか、あらゆる可能性を考えなければならないからだ。これを回避するためには、スキーマを使って、並び順の妥当性を確認するという方法もあるが、ここではスキーマを使わないという前提で話を進めよう。
さて、XML文書を出力するために前回紹介したXmlTextWriterクラスがあったのと同じように、読み込み用のXmlTextReaderクラスも存在する。このクラスは、ファイル、ストリーム、テキストなどからXML文書を入力する機能を持つ。処理する順番は、XmlTextWriterクラスと同様に、前方から後方に向かって一直線(シーケンシャル)である。処理の流れを変えることはできない。このクラスは、抽象クラスのXmlReaderクラスに、それらの対象からの入力機能を実装したものである。もし、何か別の対象から入力したい場合は、XmlReaderクラスを継承して入力機能を実装すればよいことになる。それは応用技ということで話をXmlTextReaderクラスに戻そう。
XmlTextReaderクラスには、XML文書に記録されているさまざまな項目、要素や属性などを読み込むメソッドが用意されている。しかし、それだけで十分というわけではなく、種類を問わず次の項目を読み込むReadメソッドが存在している。Readメソッドで次の項目を読み込んでから、その項目が何かを判定して、処理すべき内容を決定するプログラミングを行うことが多い。
さて、いろいろな種類の項目が読み込まれて分類される様子を確認するために、サンプル・プログラムを用意した。条件を変えて何度も繰り返し試すために、以下に示すようなGUIのインターフェイスを用意しよう。
まず、Windowsアプリケーションのフォーム上に、マルチラインのTextBoxコントロール(MultilineプロパティをTrueに設定)を2つと、Buttonコントロールを1つ貼り付けよう。Labelコントロールなどは好みに応じて適当に付ければよい。各コントロールには次のような名前を設定する。
上のTextBoxコントロール:textBoxSource
下のTextBoxコントロール:textBoxResult
Buttonコントロール:buttonDump
Visual Studio .NETでの配置は、次のような感じである。
![]() |
| GUIインターフェイスのデザイン例 |
| このサンプル・プログラムは、さまざまなXML文書を読み込んで、その処理結果を確認するのに利用する。 |
フォームができたら、コードの先頭部分に、以下のようにImportsステートメント(C#ではusingディレクティブ)を追加する。
|
|
| VB.NET版のサンプルに必要なImportsステートメント | |
| C#版のサンプルに必要なusingディレクティブ |
そして、いま配置したButtonコントロールをダブルクリックし、ボタンのClickイベントとして以下のようなコード書き込む。
|
|
| ボタンのClickイベントに記述するコード(VB.NET版) | |
| ボタンのClickイベントに記述するコード(C#版) |
| INDEX | ||
| .NETで簡単XML | ||
| 第3回 XML文書を読み書きするプログラムの作成 | ||
| 1.XML文書を読み込む | ||
| 2.XML文書を読み込むサンプル・プログラム | ||
| 3.文書の妥当性を検証するXmlValidatingReaderクラス | ||
| 4.XML文書を読み書きするサンプル | ||
| 5.XML文書を読み書きするサンプルの解説 | ||
| 「連載 :.NETで簡単XML」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



