Это мой пост на 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, но мне нужно запустить этот скрипт в Windows, поэтому используйте vbscript. Я использую ту же технику для анализа XML из других источников без каких-либо проблем. К сожалению, я не могу изменить XML, он взят из внешнего источника. У меня точно такая же ошибка как в домашней версии Windows Vista, так и в Windows Server 2008. Пока я запускаю vbscript из командной строки для тестирования (т.е. не в ASP).
Заранее спасибо,
Сэм