プロが教えるわが家の防犯対策術!

いつもお世話になっております。
標題の件なのですが、VB.NETでXMLファイルから設定情報(Oracleのユーザー名やパスワード等)を取得するプログラムを作成しております。
以下がそのソースコードになります。
※VB.NET初心者なので、ネットにあったサンプルコードを参考にしました。
--------------------------------------------------
  Public Function Setting_init() As Boolean

    Dim xmlDoc As New DOMDocument30
    Dim Node As IXMLDOMNode
    Dim myErr
    Dim FileName As String

    FileName = "ini.xml"
    Const PATH_DTS = "//Settings/Database/DataSource"
    Const PATH_UID = "//Settings/Database/UserId"
    Const PATH_PSW = "//Settings/Database/Password"
    Const PATH_FRM = "//Settings/Path/Form"
    Const PATH_OUT = "//Settings/Path/Output"

    xmlDoc.async = False
    xmlDoc.resolveExternals = False
    xmlDoc.load(FileName)
    
    If (xmlDoc.parseError.errorCode <> 0) Then
      myErr = xmlDoc.parseError
      Setting_init = False
    Else
      xmlDoc.setProperty("SelectionLanguage", "XPath")
      Node = xmlDoc.selectSingleNode(PATH_DTS)
      G_DataSorce = Node.text
      Node = xmlDoc.selectSingleNode(PATH_UID)
      G_UsrId = Node.text
      Node = xmlDoc.selectSingleNode(PATH_PSW)
      G_PassWord = Node.text
      Node = xmlDoc.selectSingleNode(PATH_FRM)
      G_FormPath = Node.text
      Node = xmlDoc.selectSingleNode(PATH_OUT)
      G_OutPath = Node.text
      Setting_init = True
    End If
  End Function
--------------------------------------------------
ちなみにXMLファイルの内容は
--------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<Settings>
 <Database>
  <DataSource>Oracleサーバー名</DataSource>
  <UserId>ユーザー名</UserId>
  <Password>パスワード</Password>
 </Database>
 <Path>
  <Form>フォームが存在するフォルダパス</Form>
  <Output>ファイルを出力するフォルダパス</Output>
 </Path>
</Settings>
--------------------------------------------------
となっております。

お客様の環境で実行したら、このプログラムのxmlDoc.load(FileName)の箇所でエラーが出ました。
読み取るXMLファイル内の漢字を除いたら実行できたみたいなのですが、
開発環境ではXMLファイルに漢字を含んでいても問題なくload出来るのです。

端末に依存するのでしょうか?
それともこの文字があったらダメというのがあるのでしょうか?

何か情報があればご教示願います。
よろしくお願い致します。

A 回答 (2件)

秀丸でファイルにUTF-8のBOMがちゃんとついていれば、メモ帳で編集してもうまくいくと思うのですが、つかない場合うまくいかない可能性があるかもしれません。



BOMはテキストファイルをバイナリエディタで開いて、先頭3バイトが
EF BB BF
になっていればついていること言うことになる。
(ついていない場合、すべてASCII文字であるとき、Shift_JISとの区別がつかなくなるため、再編集時にShift_JISになる可能性がある)

もしくは、メモ帳のほうでUFT-8が対応していないという可能性があるかもしれません。
(Vistaに付属しているメモ帳はUTF-8に対応している)
    • good
    • 0

XMLファイルはどのように作成しましたか?


ファイルの文字コードとencodingの文字コードが一致していますか?

この回答への補足

bluecampus様
さっそくのご回答ありがとうございます。
開発環境ではXMLファイルは秀丸というエディタを利用して作成しました。
お客様のところではメモ帳で開いて編集したのですが、この場合は文字コードが変わってしまうのでしょうか?
初心者ですみません。

補足日時:2009/04/13 13:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!