从字符文档到xml文档--

从字符文档到xml文档--

ID:24626682

大小:51.50 KB

页数:3页

时间:2018-11-15

从字符文档到xml文档--_第1页
从字符文档到xml文档--_第2页
从字符文档到xml文档--_第3页
资源描述:

《从字符文档到xml文档--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、从字符文档到xml文档>>计算机世界尽管现在越来越多地试图使用unicode这一世界语来说话,但还是存在着gb2312,shift-jis这样的方言,使用MSXMLDOM就会清楚地体会到方言的不便。我想将下面这个文本文档直接存为转换成xml,是否OK,答案是NG(NoGood)strXML="<?xmlversion=""1.0""encoding=""GB2312""?><XML>这里是一些编码为GB2312的xml文档</XML>"SetdomXML=NeentdomXML

2、.loadXMLstrXMLIfdomXML.parseErrorThenDebug.PrintdomXML.parseError.reasonElseDebug.PrintdomXML.xml执行这段代码会返回Scurrentencodingtospecifiedencodingnotsupported.(不支持从当前编码转换到指定的编码)这样的错误信息。为什么会这样呢?ChrisLovett说:[LoadXML方法总是采用只在UCS-2或UTF-16中编码的UnicodeBSTR。如果将非有效的Unicode

3、BSTR的内容传递给LoadXML,则加载会失败。]因此我们不得不只加载没有用"方言"的文档给DOMDocument对象。将<?xmlversion="1.0"encoding="GB2312"?>去掉,这样的话strXML将作为unicode字符串交给dom处理。strXML="<XML>这里是一些编码为GB2312的xml文档</XML>"看到上面的用法,热爱自己语言的人们也许会大骂ms的。如果对这一问题深入研究一下,其实我们完全能做到将带有方言标志的文档直接加载到dom上

4、,我编了一个小函数解决之一问题。PrivateFunctionStr2XML(strOriAsString)AsDOMDocumentDimxmlDocAsDOMDocumentSetxmlDoc=NeentDimpi()AsBytepi()=StrConv(strOri,vbFromUnicode)xmlDoc.LoadpiSetStr2XML=xmlDocEndFunction我们用如下代码试一下SetdomXML=NeentSetdomXML=Str2XML(strXML)IfdomXML.parseErr

5、orThenDebug.PrintdomXML.parseError.reasonElseDebug.PrintdomXML.xml就会发现正确输出了带<?xmlversion="1.0">标志的xml文档。但你如果用这个函数处理不带"方言"标志的文档可能会出现下面的错误AnInvalidcharacterl文档的时候应该先检查一下语言标志吧。如果说方言交给我的函数去做,说世界语的就让他说吧。Str2XML函数的原理是什么呢?从下面ChrisLovett的描述里我想大家不难作出解释。Load方法可将以

6、下内容当作VARIANT:1,(URL):如果VARIANT是BSTR,则将其理解为URL。2,(VT_ARRAY或VT_UI1):VARIANT也可以是包含原始编码字节的SAFEARRAY。3,(IUnkno、IPersistStream和IPersistStreamInit调用QueryInterface。在msdn里没有提及load的非url应用,只是在ms的例子里能看到一些端倪,而且也是怪怪的。我的这篇文章也许可以称为msxmlinside文章了吧。顺便提一下用xmlhttp发到server上的数据在转化

7、为xml文档的时候就使用了load的这一用法。//LoadthepostedXMLdataandsaveittodisk.xml.load(Request);大家不觉的load(Request)的用法怪怪的吗?其实我们分析一下用Request.BinaryRead读到的内容就会明白了。那就是文本文档的SafeArray形式,一切没有什么神秘的。建议大家读〈XML数据的编码方式〉的中文版本。>>>>这篇文章来自..,。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。