【问题标题】:VBscript Record set w/ XML data outputting as byte array. Microsoft VBScript runtime error: Invalid procedure call or argumentVBscript 记录集 w/XML 数据输出为字节数组。 Microsoft VBScript 运行时错误:无效的过程调用或参数
【发布时间】:2011-10-14 20:50:49
【问题描述】:
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 运行时错误:无效的过程调用或参数

RS_categoryXML(0) 包含一个 XML 文档。 RS_categoryXML(0) 存储为字节数组。为什么?它应该是一个长字符串,我可以写入文件,但由于某种原因它被存储为字节数组并且无法输出。

谢谢,

托马斯

【问题讨论】:

    标签: xml vbscript recordset


    【解决方案1】:

    RS_categoryXML(0) 存储为字节数组。为什么?

    您没有向我们展示任何与此相关的内容,因此很难说。我们不知道“generateCategoryXML”中的 SQL 是什么,甚至不知道您使用的是什么数据库引擎(包括它的版本)。

    也就是说,我猜你有什么字节数组,其中包含已经编码为 UTF8 的 xml。我还猜测记录集中只有一条记录(否则您尝试创建的 XML 将缺少根元素)。

    您遇到的另一个问题是您尝试使用 FSO 编写 UTF8 编码的 XML 文件,但 FSO 无法处理 UTF8。

    我的建议是放弃使用 FSO 并改用 ADODB.Stream,这将允许您将字节直接写入流并保存文件。我什至不会打扰 xml 声明,它只有在指定不同于 UTF8 的编码时才真正有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多