C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)


(過去ログ 84 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■49856 / inTopicNo.1)  xmlを読み込もうとすると例外エラーが出てしまいます(泣)
  
□投稿者/ まおみ (1回)-(2010/05/20(Thu) 21:43:08)

分類:[.NET 全般] 

Protected Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click
Dim FILENAME As String
FILENAME = "C:\\TEST\"
If i = 1 Then
    FILENAME = FILENAME & "AAA\111.xml"
    Call testmethod(FILENAME)
ElseIf i = 2 Then
    FILENAME = FILENAME & "BBB\222.xml"
    Call testmethod(FILENAME)
End If
End Sub

Private Sub testmethod(ByVal FILENAME)   
 If File.Exists(FILENAME) Then

        Dim xlr As XmlTextReader
        xlr = New XmlTextReader(FILENAME)
        While xlr.Read()
            Select Case xlr.LocalName
                Case "Personal"
                    TextBox1.Text = xlr.ReadString
                Case "LastUpdate"
                    Label1.Text = xlr.ReadString
            End Select
        End While
        xlr.Close()
 End If

End Sub

こんな感じでコードを書いているのですがWhile xlr.Read()のところで例外エラーが出てしまいます。
原因が全然つかめず困っています。
New XmlTextReader(FILENAME)のFILENAMEを変数でなく直接パスを書くとうまくいくのですが変数にするとなぜかハンドリングできなくなります。
どなたかご解説お願いします。

引用返信 編集キー/
■49857 / inTopicNo.2)  Re[1]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ ヴァン (74回)-(2010/05/20(Thu) 21:58:11)
No49856 (まおみ さん) に返信

> こんな感じでコードを書いているのですがWhile xlr.Read()のところで例外エラーが出てしまいます。
> 原因が全然つかめず困っています。

例外エラーは何と言ってます?

引用返信 編集キー/
■49858 / inTopicNo.3)  Re[1]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ .SHO (1336回)-(2010/05/20(Thu) 22:54:20)
No49856 (まおみ さん) に返信

> FILENAME = "C:\\TEST\"
                ↑
              C:\TEST\

引用返信 編集キー/
■49860 / inTopicNo.4)  Re[2]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ まおみ (2回)-(2010/05/20(Thu) 23:48:06)
すみませーん。。。
一部コードが間違っていましたっ(汗)
C:\TEST\

xlr = New XmlTextReader(FILENAME)
ではなくて
xlr = New XmlTextReader(New StringReader(FILENAME))

エラーも詳しく書きそびれてゴメンなさぃ

エラーはこんなのが出ちゃいます。

!XmlExceptionはユーザーコードによってハンドルされませんでした。
ルートレベルのデータが無効です。行1、位置1です。

これってXMLの形式が変だからとかですか???
FILENAMEではなくパスを書くとちゃんと解析がされます。
ちなみにXMLは
<?xml version='1.0' encoding='UTF-8' ?>
<INFOMATION>
<DDL>あああああ</DDL>
<TTL>いいいいい</TTL>
<DTL>みやさこです</DTL>
<DTLDTL>ほとちゃん</DTLDTL>
</INFOMATION>
のような感じですが・・・
引用返信 編集キー/
■49861 / inTopicNo.5)  Re[3]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ Azulean (560回)-(2010/05/21(Fri) 00:00:03)
No49860 (まおみ さん) に返信
> xlr = New XmlTextReader(New StringReader(FILENAME))
なぜ、StringReader…。
多分、StreamReader との勘違いではないかと思いますが。

StringReader はコンストラクタで渡した文字列をファイルのように読み込むためのクラスです。
この場合、FILENAME に入っている文字列がファイルの中身と解釈されます。

http://msdn.microsoft.com/ja-jp/library/system.io.streamreader.aspx
http://msdn.microsoft.com/ja-jp/library/system.io.stringreader.aspx
引用返信 編集キー/
■49862 / inTopicNo.6)  Re[4]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ まおみ (3回)-(2010/05/21(Fri) 00:25:50)
そうだったんですかぁ・・・
この辺がまだまだ勉強不足でわかっていないのでまいくろそふとのどこかのページ(URLが分からなくなってしまいました・・・)を真に受けて書いてしまいました。
つまり、SringReaderを使っちゃうと要は「パス名」をファイルの中身と認識しちゃうと解釈でいいのでしょうか?
(あらら(~~;))
ただ、StreamReaderだとそもそもビルドエラーがでてデバックすらできません、、、

メッセージの意味がいまいち理解できないのですがこんなのが出ちゃっていマス・・・

エラー 1 縮小変換しないで呼び出される、アクセス可能な 'New' がないため、オーバーロードの解決に失敗しました:
'Public Sub New(path As String)': パラメータ 'path' と一致する引数は 'Object' から 'String' へ縮小変換します。
'Public Sub New(stream As System.IO.Stream)': パラメータ 'stream' と一致する引数は 'Object' から 'System.IO.Stream' へ縮小変換します。
引用返信 編集キー/
■49874 / inTopicNo.7)  Re[5]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ ムッハー (1回)-(2010/05/21(Fri) 11:10:04)
xlr = New Xml.XmlTextReader(System.IO.StreamReader(FILENAME))

でいいんじゃないの?

引用返信 編集キー/
■49918 / inTopicNo.8)  Re[6]: xmlを読み込もうとすると例外エラーが出てしまいます(泣)
□投稿者/ まおみ (4回)-(2010/05/22(Sat) 10:51:32)
あー・・・型が違っていたんですねぇ(汗)
やっとぉうまく出来ました
ありがとうございましたっぁ
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -