- PR -

xmlからのデータ取得が分かりません

1
投稿者投稿内容
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-13 09:23
こんにちは。
現在、xmlからデータを取得しようと思っているのですが
実行時エラーがでます。
どうかご教授お願いします。
【実行環境】
 Windows 2000
Microsoft Visual Basic.net 2003

************* ここからプログラム **************************
Public Class clsDBConnect
Private m_id As String
Private m_table As String
Private m_koumoku As String
Private m_sansyou As String

Public Sub main(ByVal id As Integer)
'xmlの内容を読み込む
Dim Serializer As _
New System.Xml.Serialization.XmlSerializer( _
GetType(clsDB()))
Dim fs As New System.IO.FileStream( _
"C:\DBConnect.xml", System.IO.FileMode.Open)

Try
'↓ここでエラーになります
Dim loadClasses() As clsDB = Serializer.Deserialize(fs)
Dim loadClass As clsDB

'xmlのファイルを該当データが見つかるまで検索する
For Each loadClass In loadClasses
'ここでxmlの内容を参照する
If id.ToString = loadClass.m_Id Then
Me.m_id = loadClass.m_Id
Me.m_koumoku = loadClass.m_Koumoku
Me.m_sansyou = loadClass.m_Sansyou
Me.m_table = loadClass.m_Table
Exit For
End If
Next
Catch ex As Exception
'エラー処理
Finally
fs.Close()
End Try
End Sub
End Class

Public Class clsDB
Public m_Id As String
Public m_Table As String
Public m_Koumoku As String
Public m_Sansyou As String
End Class

********** DBConnect.xml ************************************

<?xml version="1.0"?>
<ArrayOfclsDB xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<clsDB>
<m_Id>0</m_Id>
<m_Table>品番原価マスタ_仕入先別</m_Table>
<m_Koumoku>SNo,LNo</m_Koumoku>
<m_Sansyou>ShiireCD,Jyuni,ShitenCD</m_Sansyou>
</clsDB>
<clsDB>
<m_Id>1</m_Id>
<m_Table>品番原価マスタ_仕入先サイズ別</m_Table>
<m_Koumoku>SNo,LNo,ColorCD,SizeCD</m_Koumoku>
<m_Sansyou>ShiireCD,ShitenCD</m_Sansyou>
</clsDB>
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-13 10:18
諸農です。

どのようなエラーが出ているのか判らないので何とも言えませんが、
ストリームから直接デシリアライズするのではなくて、
XmlTextReaderを間にかませてみていかがでしょうか。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-13 11:01
>XmlTextReaderを間にかませてみていかがでしょうか。
返信ありがとうございます。
XmlTextReaderですか
自分は、使ったことがないので調べて使ってみようと
思います。

また、エラー内容を書き忘れていましたので
 エラー内容は、「プロシージャの呼び出し又は引数が不正です」
というエラーが出ていました。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-13 12:25
諸農です。

元投稿の内容を見落としていました。

元の投稿で提示されているクラスなんですが、
フィールドがprivate属性ですね。
XMLシリアルライズは、オブジェクトのパブリックプロパティと
パブリックフィールドを対象にシリアル化逆シリアル化するので
エラーになっているのかも。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-13 13:34
すいません。
原因がわかりました。
テーブル名が日本語になっているために
取得が正常に出来なかったみたいです。
一回xmlを作成するプログラムを作った後に
そのxmlを読み込ませるという風にしたら
xmlを正常に読み込ませることが出来ました

1

スキルアップ/キャリアアップ(JOB@IT)