我是这样创建XML的。用CFile来新建一个文件命名为1.xml.再将<book>........内容写到xml里,为什么这个XML在IE里显示不了呢?显示如下:...............名称以无效字符开头。处理资源 'file:///E:/code/SplitXML/new.xml' 时出错。第 1 行,位置: 2 <

解决方案 »

  1.   

    恩,确实可能是编码问题,请教怎么在创建文件的时候 把它保存成Unicode格式呢?
      

  2.   

    "如果没有规定编码,XML 处理程序必须根据文件一开始是否存在特定的字节序列--称为 字节序标志(Byte Order Mark)或 BOM--确定使用的是 UTF-8 还是 UTF-16 编码。 "
    这个字节序标志怎么写入文件呢?
      

  3.   

    vc默认是用ansi,所以工程按照默认设置用CFile写CString生成的xml有汉字要加
    <?xml version="1.0" encoding="gb2312" ?>
      

  4.   

    不必特意去保存成unicode,
    msxml对文档解析一般是根据xml中的编码定义和二进制文件本身,
    也就是一个xml如果没有指定encoding,则取文件的前几个字节判断出可能是什么编码
    如果指定了encoding,就会采用该编码方案解析,不过如果指定的编码跟文件本身不符也会报错。所以你光写一个<book></book>,msxml不会知道里面有汉字该怎么办。就报错。
    解决方法是要么你加上<?xml version="1.0" encoding="gb2312" ?>,明确告诉它。
    要么你把文件存成unicode或者utf-8,让它自动识别