我正在解析smil(xml)文件以獲取路徑名列表。解析進行得很順利,並存放在一個巨大的文字對象中。無法讀取未定義的屬性'undefined',但我確定該var有效
但當我嘗試獲取信息回去,我只得到:
/home/pi/RaspberryPiTV-master/app.js:158
Playlist.push(smil.playlist.video[i].src);
^
TypeError: Cannot read property 'undefined' of undefined
at /home/pi/RaspberryPiTV-master/app.js:158:46
at /home/pi/RaspberryPiTV-master/app.js:321:39
at Object.oncomplete (fs.js:93:15)
的代碼如下:
var smil={}, i=0;
Playlist=[];
parse("/home/pi/test.smil", function (parsed){
smil=parsed;
console.dir(util.inspect(smil, false, null));
do
{
Playlist.push(smil.playlist.video[i].src);
i=i+1;
}while(i<smil.playlist.video.length-1);
...
}
功能解析(路徑,回調)是相當巨大的,但確實工作,因爲它的印刷工作:
{
stream:
[
{ name: 'Stream1' }
],
playlist:
[
{ video:
[
{ src: 'L.mp4', start: '5', length: '5' },
{ src: 'SW.mp4', start: '50', length: '5' },
{ src: 'HN.mp4', start: '150', length: '5' }
],
name: 'pl1',
playOnStream: 'Stream1',
repeat: 'true',
scheduled: '2013-07-23 11:00:00'
}
]
}
我錯過了什麼嗎?我只是不明白爲什麼我得到undefined,因爲我確實打印了正確的打印件。
變量'i'和'smil.playlist.video'都是'undefined'。把'var i'放在while循環旁邊。 (在解析回調中) – Halcyon
我是怎麼定義的? 是不是和smil同時聲明? – DrakaSAN
我不知道,'我'是全球定義的,所以誰知道它在哪裏。當這個回調運行時,它是'未定義的'。 – Halcyon