这是我在 stackoverflow 上的堡垒帖子。我在这个网站上搜索了许多类似的问答,但我的情况似乎有点不同。这是我的 vbscript 代码:

------------ 代码片段 ---------------

xmlurl = "songs.xml"

set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.loadXML(xmlurl)

if xmlDoc.parseError.errorcode<>0 then
  'error handling code
  msgbox("error! " & xmlDoc.parseError.reason)
end if

------------ 结束代码片段 ---------------

XML:
<?xml version="1.0" encoding="UTF-8"?>
<nowplaying-info-list>
  <nowplaying-info mountName="CKOIFMAAC" timestamp="1339771946" type="track">
    <property name="track_artist_name"><![CDATA[CKOI]]></property>
    <property name="cue_title"><![CDATA[HITMIX]]></property>
  </nowplaying-info>
  <nowplaying-info mountName="CKOIFMAAC" timestamp="1339771364" type="track">
    <property name="track_artist_name"><![CDATA[AMYLIE]]></property>
    <property name="cue_title"><![CDATA[LES FILLES]]></property>
  </nowplaying-info>
  <nowplaying-info mountName="CKOIFMAAC" timestamp="1339771149" type="track">
    <property name="track_artist_name"><![CDATA[MIA MARTINA]]></property>
    <property name="cue_title"><![CDATA[TOI ET MOI]]></property>
  </nowplaying-info>
</nowplaying-info-list>

我还尝试删除第一行,以防 UTF-8 与 Windows 不兼容(看到一些关于此的帖子),但我仍然遇到相同的错误。我还尝试了 unix2dos,反之亦然,以防出现回车问题(嵌入在 xml 中的隐藏字符)。我似乎无法弄清楚出了什么问题。这是一个简单的 XML 文件。我可以在几分钟内使用 perl regex 解析它,但我需要在 windows 上运行这个脚本,所以使用 vbscript。我使用相同的技术从其他来源解析 XML,没有任何问题。不幸的是,我无法修改 XML,它来自外部来源。
我在 Windows Vista 家庭版和 Windows Server 2008 上都有这个完全相同的错误。到目前为止,我正在从命令行运行 vbscript 进行测试(即不在 ASP 中)。

提前致谢,

山姆

最佳答案

xmlDoc.loadXML() 可以加载一个 XML 字符串。它无法检索 URL。

如果您需要发出 HTTP 请求,请使用 XMLHTTPRequest 对象。

Function LoadXml(xmlurl)
  Dim xmlhttp

  Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
  xmlhttp.Open "GET", xmlurl, false

  ' switch to manual error handling
  On Error Resume Next

  xmlhttp.Send
  If err.number <> 0 Then
    WScript.Echo xmlhttp.parseError.Reason
    Err.Clear
  End If

  ' switch back to automatic error handling
  On Error Goto 0

  Set LoadXml = xmlhttp.ResponseXml
End Function

使用喜欢
Set doc = LoadXml("http://your.url/here")

关于VBScript 和 loadXML : Invalid at the top level of the document. 如何解决?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11062074/

10-13 03:10