MSXML2.DOMDocument加载含有怪字XML的问题,请高手解答

zhengyun_ustc 2004-04-28 10:51:01
这样,我用MSXML2.DOMDocument生成XML,中间有这种怪字“”,是可以的,但是之后立刻重新用LoadXML(obj.XML)加载,就不行。怎么办?
Dim obj As New DOMDocument30

obj.loadXML "<?xml version=""1.0"" encoding=""GB2312-80""?> <root></root>"

Dim oNode As IXMLDOMNode

Set oNode = obj.createElement("Content")
oNode.Text = "怪字:€€"

obj.documentElement.appendChild oNode
'这时候的obj.xml输出来是这样:<?xml version="1.0"?><root><Content>怪字:€€</Content></root>
MsgBox obj.loadXML(obj.xml)
' loadxml方法返回false!
但是,obj自己重新加载obj.xml居然就失败了!原因就是那个怪字,无效字符。

而且,即使自己主动加上encoding="gb2312",也不行,如下所示:
Dim obj
Set obj = CreateObject("MSXML2.DOMDocument")
MsgBox obj.loadXML("<?xml version=""1.0"" encoding=""GB2312-80""?>
<root><Content>€€</Content><root>")
msgbox obj.xml
但是这个XML存为文件,用IE浏览是没有问题的,可以解析。

那么如何才能让MSXML2.DOMDocument解析这个怪字呢?我即使给Content节点加上CDATA也不行。
求助!
...全文
181 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengyun_ustc 2004-04-28
  • 打赏
  • 举报
回复
是不是我必须先将这个怪字符,base64编码,才能绕过去?
zhengyun_ustc 2004-04-28
  • 打赏
  • 举报
回复
,就是它了。
zhengyun_ustc 2004-04-28
  • 打赏
  • 举报
回复
csdn把怪字符去除了。就是那种一个大方框的字符。
zhengyun_ustc 2004-04-28
  • 打赏
  • 举报
回复
To runmin(来了3年多~.~) :
多谢!
我打算base64编码了。但不设置datatype,直接写就是了。
blues-star 2004-04-28
  • 打赏
  • 举报
回复
var xml_dom = new ActiveXObject("Microsoft.XMLDOM");
xml_dom.loadXML('<?xml version="1.0" ?> <root/>');

xml_dom.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes");


var l_node1 = xml_dom.createElement("file1");
l_node1.dataType = "bin.base64";


然后打开2进制流,往node里写就可以了.
blues-star 2004-04-28
  • 打赏
  • 举报
回复
base64是用来编2进制的,看你的数据是不是二进制的了.
blues-star 2004-04-28
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="GB2312"?>
<root><content></content></root>
blues-star 2004-04-28
  • 打赏
  • 举报
回复

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧