Dim XML As DOMDocument 'xml 对象
Dim XmLRoot As IXMLDOMElement 'xml根节点
Dim I As Integer
Set XML = New DOMDocument
If XML.Load("c:\TDDOWNLOAD\200901.XML") = False Then
   MsgBox "打开xml出错!"
   Exit Sub
End If
Set XmLRoot = XML.documentElement '建立根节点对象
For I = 1 To XmLRoot.childNodes.length
   MsgBox XmLRoot.childNodes.Item(I).nodeName  '获得所有根节点下所有子节点的节点名
   MsgBox XmLRoot.childNodes.Item(I).Text   '获得所有根节点下所有子节点所含的文本内容
Next
Set XML = Nothing使用上面的程序读,中文会变成乱码,还需要设置编码方式吗?求教

解决方案 »

  1.   

    加一句 XML.validateOnParse = True 试试
      

  2.   

    xml 文件开头要指定编码
    <?xml version="1.0" encoding="gb2312"?>
      

  3.   

    这样的XML怎么处理?
    encoding="windows-1252",但里面charset=GB2312,要替换为encoding="gb2312"<?xml version="1.0" encoding="windows-1252"?>
    <html>
    <head><title>HTML 表格文件</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312"/>
    </head>
    <body FORMAT_GUID="{A995A1CE-AD12-468B-961A-F82BBE7FE69E}">
    <table border="0" Columns="6" style="font-size:14;color:blue" align="center" cellspacing="0" cellpadding="0">
    <col Width="64"/><col Width="128"/><col Width="208"/><col Width="112"/><col Width="112"/>
    <col Width="112"/>
    <tr style="background:black;font-size:16;color:white;" Height="22" align="center">
    <td>序号</td>
    <td>时间</td>
    <td>地点</td>
    <td>人物1</td>
    <td>人物2</td>
    <td>号码 </td>
    </tr>
    <tr align="center">
    <td style="background:#D8D8D8;">1</td>
    <td style="background:#E4E4E4;">2008-12-22</td>
    <td style="background:#D8D8D8;">人民路</td>
    <td style="background:#E4E4E4;">大厦</td>
    <td style="background:#D8D8D8;">大厦</td>
    <td style="background:#E4E4E4;">大室</td>
    </tr>
    <tr align="center">
    <td style="background:#E3E3E3;">2</td>
    <td style="background:#EFEFEF;">2008-12-23</td>
    <td style="background:#E3E3E3;">人民路</td>
    <td style="background:#EFEFEF;">右地有有</td>
    <td style="background:#E3E3E3;">的有有</td>
    <td style="background:#EFEFEF;height:12.opt"><p style="height:12.opt">大室1</p><p style="height:12.opt">大室2</p></td>
    </tr>
    </table>
    </body>
    </html>
      

  4.   

    必须替换。charset 是 html 属性,xml 解析只认开头的 encoding。
      

  5.   

    '将所有内容读入OLDXML
    NEWXML=replace(OLDXML,"<?xml version=""1.0"" encoding=""windows-1252""?> ","<?xml version=""1.0"" encoding=""gb2312""?>")
    '保存NEWXML到临时文件
    '读这个临时文件