>計(jì)算機(jī)世界盡管現(xiàn)在越來越多地試圖使用unicode這一世界語來說話,但還是存在著gb2312,shift-jis這樣的方言,使用MSXMLDOM就會清楚地體會到方言的不便。我想將下面這個(gè)文本文檔直接存為轉(zhuǎn)換成xml">
從字符文檔到xml文檔--

從字符文檔到xml文檔--

ID:24626682

大?。?1.50 KB

頁數(shù):3頁

時(shí)間:2018-11-15

從字符文檔到xml文檔--_第1頁
從字符文檔到xml文檔--_第2頁
從字符文檔到xml文檔--_第3頁
資源描述:

《從字符文檔到xml文檔--》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、從字符文檔到xml文檔>>計(jì)算機(jī)世界盡管現(xiàn)在越來越多地試圖使用unicode這一世界語來說話,但還是存在著gb2312,shift-jis這樣的方言,使用MSXMLDOM就會清楚地體會到方言的不便。我想將下面這個(gè)文本文檔直接存為轉(zhuǎn)換成xml,是否OK,答案是NG(NoGood)strXML="<?xmlversion=""1.0""encoding=""GB2312""?><XML>這里是一些編碼為GB2312的xml文檔</XML>"SetdomXML=NeentdomXML

2、.loadXMLstrXMLIfdomXML.parseErrorThenDebug.PrintdomXML.parseError.reasonElseDebug.PrintdomXML.xml執(zhí)行這段代碼會返回Scurrentencodingtospecifiedencodingnotsupported.(不支持從當(dāng)前編碼轉(zhuǎn)換到指定的編碼)這樣的錯(cuò)誤信息。為什么會這樣呢?ChrisLovett說:[LoadXML方法總是采用只在UCS-2或UTF-16中編碼的UnicodeBSTR。如果將非有效的Unicode

3、BSTR的內(nèi)容傳遞給LoadXML,則加載會失敗。]因此我們不得不只加載沒有用"方言"的文檔給DOMDocument對象。將<?xmlversion="1.0"encoding="GB2312"?>去掉,這樣的話strXML將作為unicode字符串交給dom處理。strXML="<XML>這里是一些編碼為GB2312的xml文檔</XML>"看到上面的用法,熱愛自己語言的人們也許會大罵ms的。如果對這一問題深入研究一下,其實(shí)我們完全能做到將帶有方言標(biāo)志的文檔直接加載到dom上

4、,我編了一個(gè)小函數(shù)解決之一問題。PrivateFunctionStr2XML(strOriAsString)AsDOMDocumentDimxmlDocAsDOMDocumentSetxmlDoc=NeentDimpi()AsBytepi()=StrConv(strOri,vbFromUnicode)xmlDoc.LoadpiSetStr2XML=xmlDocEndFunction我們用如下代碼試一下SetdomXML=NeentSetdomXML=Str2XML(strXML)IfdomXML.parseErr

5、orThenDebug.PrintdomXML.parseError.reasonElseDebug.PrintdomXML.xml就會發(fā)現(xiàn)正確輸出了帶<?xmlversion="1.0">標(biāo)志的xml文檔。但你如果用這個(gè)函數(shù)處理不帶"方言"標(biāo)志的文檔可能會出現(xiàn)下面的錯(cuò)誤AnInvalidcharacterl文檔的時(shí)候應(yīng)該先檢查一下語言標(biāo)志吧。如果說方言交給我的函數(shù)去做,說世界語的就讓他說吧。Str2XML函數(shù)的原理是什么呢?從下面ChrisLovett的描述里我想大家不難作出解釋。Load方法可將以

6、下內(nèi)容當(dāng)作VARIANT:1,(URL):如果VARIANT是BSTR,則將其理解為URL。2,(VT_ARRAY或VT_UI1):VARIANT也可以是包含原始編碼字節(jié)的SAFEARRAY。3,(IUnkno、IPersistStream和IPersistStreamInit調(diào)用QueryInterface。在msdn里沒有提及l(fā)oad的非url應(yīng)用,只是在ms的例子里能看到一些端倪,而且也是怪怪的。我的這篇文章也許可以稱為msxmlinside文章了吧。順便提一下用xmlhttp發(fā)到server上的數(shù)據(jù)在轉(zhuǎn)化

7、為xml文檔的時(shí)候就使用了load的這一用法。//LoadthepostedXMLdataandsaveittodisk.xml.load(Request);大家不覺的load(Request)的用法怪怪的嗎?其實(shí)我們分析一下用Request.BinaryRead讀到的內(nèi)容就會明白了。那就是文本文檔的SafeArray形式,一切沒有什么神秘的。建議大家讀〈XML數(shù)據(jù)的編碼方式〉的中文版本。>>>>這篇文章來自..,。

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。