2011-10-14 52 views
0
sub generateCategoryXML_helper() 

dim FSO, fileOut 
set FSO = CreateObject("Scripting.FileSystemObject") 
set fileOut = FSO.CreateTextFile(Server.MapPath("categoryTree.xml"), True) 

fileOut.WriteLine("<?xml version=""1.0"" encoding=""UTF-8""?>") 

set RS_categoryXML = callStoredProcedure("generateCategoryXML", null) 

while not RS_categoryXML.EOF 

    fileOut.Write(RS_categoryXML(0)) 

    RS_categoryXML.MoveNext 

wend 

end sub 

的fileOut.Write(RS_categoryXML(0))拋出一個錯誤:Microsoft VBScript運行時錯誤:無效的過程調用或參數VBscript記錄設置w/XML數據輸出爲字節數組。 Microsoft VBScript運行時錯誤:無效的過程調用或參數

RS_categoryXML(0)包含一個XML文檔。 RS_categoryXML(0)存儲爲字節數組。爲什麼?它應該是一個很長的字符串,我可以寫入該文件,但由於某種原因它存儲爲字節數組,並且無法輸出。

感謝,

托馬斯

回答

1

RS_categoryXML(0) stored as a byte array. Why?

你還沒有告訴我們有關該所以其很難說什麼話。我們不知道「generateCategoryXML」中的SQL是什麼,甚至不知道您使用的是哪個數據庫引擎(包括它的版本)。

這就是說我會猜測你的字節數組包含已經編碼爲UTF8的xml。我還會猜想,記錄集中只有一條記錄(否則,您嘗試創建的XML將缺少根元素)。

您遇到的另一個問題是您正嘗試使用FSO編寫UTF8編碼的XML文件,但FSO無法處理UTF8。

我的建議是放棄使用FSO並切換到ADODB.Stream而不是,這將允許您將字節直接寫入流並保存文件。我甚至不會打擾xml聲明,它只在指定與UTF8不同的編碼時纔有用。

相關問題