2014-10-24 3 views
0

Так что я пытаюсь разобрать температуру на weather.com и сумел это сделать, но теперь я застреваю, пытаясь сохранить температуру в файле (температура.txt). Я чувствую, что это должно работать, но оно возвращает ошибку:Ошибка VBScript при анализе температуры

Line: 11 Char: 1 Error: Type mismatch: 'Write' Code: 800A000D 

Это мой код, пожалуйста, помогите !!!

Dim nm, em, FSO, oFile 

Set xmlDoc = CreateObject("Microsoft.XMLDOM") 
xmlDoc.async = false 
xmlDoc.load("http://xml.weather.com/weather/local/USUT0225?cc=*&unit=farenheit&dayf=0") 
Set temp = xmlDoc.selectsinglenode ("/weather/dayf/day/part/t") 

Set FSO = CreateObject("Scripting.FileSystemObject") 
Set oFile = FSO.OpenTextFile("temperature.txt", 2, True) 

oFile.Write(temp) 
oFile.Close 

Set oFile = Nothing 
Set FSO = Nothing 
+0

Когда я проверяю тип 'temp', он возвращает' Nothing', поэтому вы получаете несоответствие типа. Нужно выяснить, почему «Set temp» терпит неудачу. – Matt

ответ

0

Для дальнейших ответа, так как у меня был вопрос с вашим узлом я пытался что-то вроде этого

Dim nm, em, FSO, oFile 

Set xmlDoc = CreateObject("Microsoft.XMLDOM") 
xmlDoc.async = false 
xmlDoc.load("http://xml.weather.com/weather/local/USUT0225?cc=*&unit=farenheit&dayf=0") 
Set temp = xmlDoc.selectSingleNode ("/weather/cc/tmp") 

Set FSO = CreateObject("Scripting.FileSystemObject") 
Set oFile = FSO.OpenTextFile("temperature.txt", 2, True) 

oFile.Write(temp.text) 
oFile.Close 

Set oFile = Nothing 
Set FSO = Nothing 

При проверке типа temp он продолжает возвращаться Nothing. Я пошел посмотреть XML-файл по ссылке, и я не мог следовать "/weather/dayf/day/part/t", который у вас был (может быть, потому, что я в Канаде и перенаправляюсь). В любом случае я обновил узел, который вы искали, "/weather/cc/tmp" и вывел .text в файл. На данный момент содержимое моего текстового файла 79

0

Вашего

Set temp = xmlDoc.selectsinglenode ("/weather/dayf/day/part/t") 

назначает (узел) объект температуры (большое имя переменного, кстати). Метод .Write объекта TextStream не может сериализовать объекты, он может писать только строки. Так .WRITE содержимого XML-узла:

oFile.Write temp.xml 

(и рыхлые те ())

+0

Спасибо за помощь. Я понял, что вы говорили, но не знал, как отформатировать его. Но спасибо в любом случае, теперь это работает! – Nilpmet

Смежные вопросы