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

從字符文檔到xml文檔

ID:24226173

大?。?1.50 KB

頁數(shù):3頁

時間:2018-11-13

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

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

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

2、XML.parseErrorThenDebug.PrintdomXML.parseError.reasonElseDebug.PrintdomXML.xml執(zhí)行這段代碼會返回Scurrentencodingtospecifiedencodingnotsupported.(不支持從當前編碼轉(zhuǎn)換到指定的編碼)這樣的錯誤信息。為什么會這樣呢?ChrisLovett說:[LoadXML方法總是采用只在UCS-2或UTF-16中編碼的UnicodeBSTR。如果將非有效的UnicodeBSTR的內(nèi)容傳遞給LoadXML,則加載會失敗。]因此我們不得不只加載沒有用"方言"

3、的文檔給DOMDocument對象。將<?xmlversion="1.0"encoding="GB2312"?>去掉,這樣的話strXML將作為unicode字符串交給dom處理。strXML="<XML>這里是一些編碼為GB2312的xml文檔</XML>"看到上面的用法,熱愛自己語言的人們也許會大罵ms的。如果對這一問題深入研究一下,其實我們完全能做到將帶有方言標志的文檔直接加載到dom上,我編了一個小函數(shù)解決之一問題。PrivateFunctionStr2XML(strOriAsString)AsDOMDocument

4、DimxmlDocAsDOMDocumentSetxmlDoc=NeentDimpi()AsBytepi()=StrConv(strOri,vbFromUnicode)xmlDoc.LoadpiSetStr2XML=xmlDocEndFunction我們用如下代碼試一下SetdomXML=NeentSetdomXML=Str2XML(strXML)IfdomXML.parseErrorThenDebug.PrintdomXML.parseError.reasonElseDebug.PrintdomXML.xml就會發(fā)現(xiàn)正確輸出了帶<?xmlversion

5、="1.0">標志的xml文檔。但你如果用這個函數(shù)處理不帶"方言"標志的文檔可能會出現(xiàn)下面的錯誤AnInvalidcharacterl文檔的時候應該先檢查一下語言標志吧。如果說方言交給我的函數(shù)去做,說世界語的就讓他說吧。Str2XML函數(shù)的原理是什么呢?從下面ChrisLovett的描述里我想大家不難作出解釋。Load方法可將以下內(nèi)容當作VARIANT:1,(URL):如果VARIANT是BSTR,則將其理解為URL。2,(VT_ARRAY或VT_UI1):VARIANT也可以是包含原始編碼字節(jié)的SAFEARRAY。3,(IUnkno、IPersistS

6、tream和IPersistStreamInit調(diào)用QueryInterface。在msdn里沒有提及l(fā)oad的非url應用,只是在ms的例子里能看到一些端倪,而且也是怪怪的。我的這篇文章也許可以稱為msxmlinside文章了吧。順便提一下用xmlhttp發(fā)到server上的數(shù)據(jù)在轉(zhuǎn)化為xml文檔的時候就使用了load的這一用法。//LoadthepostedXMLdataandsaveittodisk.xml.load(Request);大家不覺的load(Request)的用法怪怪的嗎?其實我們分析一下用Request.BinaryRead讀到的內(nèi)容就會

7、明白了。那就是文本文檔的SafeArray形式,一切沒有什么神秘的。建議大家讀〈XML數(shù)據(jù)的編碼方式〉的中文版本。>>>>這篇文章來自..,。

當前文檔最多預覽五頁,下載文檔查看全文

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

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