這是我在stackoverflow上的堡壘帖子。我在本網站上搜索了很多類似的Q & A,但我的情況似乎有點不同。這裏是我的VBScript代碼:VBScript和loadXML:在文檔的頂層無效。如何解決它?
------------代碼片段---------------
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中的隱藏字符)。我似乎無法弄清楚什麼是錯的。這是一個simole XML文件。我可以使用perl正則表達式在幾分鐘內解析它,但我需要在Windows上運行這個腳本,所以使用VBScript。我使用相同的技術從其他來源解析XML,沒有任何問題。不幸的是,我無法修改這個XML,它來自外部。 我在Windows Vista家庭版和Windows Server 2008上都有同樣的錯誤。我從命令行運行vbscript到目前爲止進行測試(即不在ASP中)。
由於提前,
山姆
您的解決方案工作但稍作修改。相反的: 設置xmlDoc中= xmlhttp.ResponseXml 我修改了負載功能(HTTP GET後): xmlDoc.loadXML(xmlhttp.responseText) 非常感謝,現在我沒有更多的錯誤! 現在我只需要弄清楚如何解析節點的屬性和那個有趣的看!CDATA []的東西大聲笑。 – hacker101
@ hacker101但是爲什麼? 'responseXML'已經是一個完全有效的XML文檔對象。沒有必要再次解析'responsText' * *。你所做的只是創建第二個文檔對象,並將第一個文檔對象引出。 – Tomalak
由於某種原因,我之前收到錯誤消息。你是對的!這會更好,代碼更少,運行時間更少。真棒。再次感謝! – hacker101