|
> ファイル名:LOGIN.xml (略) > 上が作成したXMLファイルです。
XML 宣言が無いですね。
> 'パスの作成 > XMLPath = System.IO.Directory.GetCurrentDirectory() & "\" & XMLFileName
良くない手法です。 カレントディレクトリはアプリケーションの実行ファイルが配置されているディレクトリと等しいという保証はまったくありません。
「アプリケーションの実行ファイルが配置されているディレクトリ」を取得したいなら、言葉通り
Path.GetDirectoryName(Application.ExecutablePath)
とした方が良いと思います。
> '指定されたファイルは存在したのか? > If Not File.Exists(XMLPath) Then > MessageBox.Show("ログインに必要なXMLファイルが存在しません(重要)", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error) > End > End If
これもあまり良くないです。 存在チェックを通ったとして、次の瞬間には何らかの原因によってファイルは削除されてしまっているかもしれません。
「処理対象のファイルが存在しないこと」を検出するには、「実際に処理を始めて、そこで発生した例外を捕捉する」方が確実と思います。
> XMLReader = New IO.StreamReader(XMLPath) > XMLDataSet.ReadXml(XMLReader) > > ↓↓ここから下の書き方がわからない↓↓
XML スキーマは用意してないんですよね?
個人的には、スキーマを用意してないんだったら DataSet なんか使わないほうがいいんじゃないかと思います。
XmlDocument.Load() して、XmlElement.SelectNodes(), XmlElement.SelectSingleNode() で目的の行を検索した方が早いように思います。
> 参考書を片手にしているのですが見ている参考書は、DataGridViewに表示させる内容で、ドンと一発表示みたいな感じで書かれています。 > XMLの各項目を1つづつ、変数にセットさせることは難しいのでしょうか?
その例で扱っている文書の構造は、↑の方で例示された XML 文書と同じ構造なんですか?
また、参考書では XML スキーマについて何か言及されていませんでしたか?
|