- ベストアンサー
VB.NETでXMLの読み込みで例外エラーが発生し、解決方法がわかりません
- VB.NETでXMLの読み込みを行うと例外エラーが出てしまい大変困っています。どなたかお願いします。
- コード内でファイルの存在を確認し、XmlTextReaderクラスを使用してXMLを読み込んでいますが、Whileループの中で例外エラーが発生しています。
- 変数を使用してファイルパスを指定すると例外エラーが発生し、直接パスを指定するとエラーが発生しないため、何が原因なのかわかりません。解決方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
型の問題です。 修正方法は二つあります。(推奨は方法1です) 修正方法1 Private Sub testmethod(ByVal FILENAME) を Private Sub testmethod(ByVal FILENAME As String) へ 修正方法2 xlr = New XmlTextReader(FILENAME) を xlr = New XmlTextReader(FILENAME.ToString()) へ それと FILENAME = "C:\TEST\" FILENAME = FILENAME & "111.xml" がありますが、私なら FILENAME = "C:\TEST" ← 最後の¥はあっても無くてもよい FILENAME = IO.Path.Combine(FILENAME, "111.xml") というようにします。 Combineを利用すると、パスの連結を行うのですが、必要に応じて「\」をつけてくれますよ~
その他の回答 (2)
- ToOrisugaru
- ベストアンサー率28% (80/280)
XmlTextReaderは、使ったことないけど、 Private Sub testmethod(ByVal FILENAME) の指定で、パラメータがオブジェクト型になってますけど これだと、オーバーライトうまくいかないのでは? http://msdn.microsoft.com/ja-jp/library/system.xml.xmltextreader.xmltextreader(VS.80).aspx 上記内容によると、パラメータ一つだけというのは以下のパターンでしかないのですが... XmlTextReader (Stream) XmlTextReader (String) XmlTextReader (TextReader) XmlTextReader (XmlNameTable)
お礼
ありがとうございます
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
"C:\\TEST\" ↑なんか\が多くないですか? "C:\\TEST\" を "C:\TEST\" にしたらどうなりますか?
お礼
うっかりミスでした。 あとxlr = New XmlTextReader(New StreamReader(FILENAME))でした・・・ ただ、これでもエラー 1 縮小変換しないで呼び出される、アクセス可能な 'New' がないため、オーバーロードの解決に失敗しました: 'Public Sub New(path As String)': パラメータ 'path' と一致する引数は 'Object' から 'String' へ縮小変換します。 'Public Sub New(stream As System.IO.Stream)': パラメータ 'stream' と一致する引数は 'Object' から 'System.IO.Stream' へ縮小変換します。 ってなっっちゃいます・・・
お礼
ありがとうございます すごく感謝感謝です! 調べたりしても全然わからなかったことが解決してうれしいです。 本当にありがとうございました