我现在用MSXML2.DOMDocument操作XML文档,读取的时候对于Unicode编码的文档,没有问题,但是对于GB2312的文档<?xml version="1.0" encoding="GB2312"?>就不可以了,也没有找到可以设置读取编码的位置。
求助:怎样能够读取这些非unicode编码的文档?
谢谢!

解决方案 »

  1.   

    读取按GB2312编码保存的XML文档,该文档类似于数据库中的一个数据表
      

  2.   

    Dim xml As MSXML2.DOMDocument
    Set xml = New MSXML2.DOMDocument30
    xml.Load("D:\source\data1.xml")
    ///加载失败data1.xml
    <?xml version="1.0" encoding="GB2312"?>
      <root>
        <r1 indate="2005-2-1" outdate="2005-1-30">
          <Name>Test1</Name>
          <Name>Test2</Name>
          <Name>Test3</Name>
        </r1>
    ……在 xml.Load 的时候出错!
    把该XML文件用记事本打开,去掉encoding="GB2312",另存的时候选择编码Unicode,则以上程序可以通过。daisy8675(莫依) ,这样说清楚吗?
    谢谢哦
      

  3.   

    Set xml = New MSXML2.DOMDocument30  ==〉Set xml = New MSXML2.DOMDocument
    不好意思,上文此处手误
      

  4.   

    NO,我的意思是说,比如你的XML文件是啥样子你想显示成啥样子。你的变量名还真取得奇怪
      

  5.   

    Private Sub Command2_Click()
      Dim xDoc As MSXML2.DOMDocument
      Set xDoc = New MSXML2.DOMDocument
      
      xDoc.loadXML ("c:\myTest.xml")
      Unload Me
    End Sub如果只是说这个的话,我刚测试过。没问题啊
    要不,把你的XML文件mail给我:[email protected]
      

  6.   

    你这样试
    if xDoc.loadXML ("c:\myTest.xml") = false then
       msgbox ("失败!")
    end if
    看看结果,如果没有弹出对话框,说明加载完成。
      

  7.   

    上面写错了哈.loadxml是对字符串Private Sub Command2_Click()
       Dim xDoc As MSXML2.DOMDocument
      Set xDoc = New MSXML2.DOMDocument
       
     xDoc.async = False
      If xDoc.Load("c:\myTest.xml") Then
        Debug.Print "OK"
      Else
        Debug.Print "failed"
      End If
     
    End Sub我测了,还是OK,我是GBGB2312