[問題] 讀取xml某個節點的nodeValue得到null值

看板Flash作者 (某T)時間18年前 (2008/01/09 01:36), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
小弟最近因為公司接了一個widget的案子, 所以k了一下xml,也完成了這個案子。 而手頭上另外一個案子是做上傳照片的活動, 由於不懂得怎麼連資料庫,所以就想了一個偷吃步的方法。 我將程式設計師寫的asp改寫成xml格式, 然後將我需要的變數留下來, 最後成功地寫出了包含使用者上傳的照片和連結的頁面網址的xml檔, 並且成功地load進flash,如此一來不用連資料庫也可以讓flash自動更新。 但是在把值取出的時候卻發生了一個問題, 照片的路徑可以正確取出,但是網址的部份傳回來卻是null值。 我查了資料,資料上解釋說: 「如果XML物件為文字節點,它的nodeType是3,nodeValue是節點文字; 如果XML物件是XML元素(節點類型是1),它的nodeValue是null,而且是唯讀。」 我的問題來了,請問為什麼網址的這個節點會變成XML元素? 我該如何將這個節點中的值(網址)取出? 附上asp產生的xml: <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"> <exp> <photo>img/SharePhoto/photo/6141706.gif</photo> <expURL>PF_ShareShow.asp?ID=6</expURL> </exp> <exp> <photo>img/SharePhoto/photo/2131706.jpg</photo> <expURL>PF_ShareShow.asp?ID=2</expURL> </exp> <exp> <photo>img/SharePhoto/photo/1154706.jpg</photo> <expURL>PF_ShareShow.asp?ID=1</expURL> </exp> </rss> 補充一下,我把xml讀進來之後存到陣列裡了。 陣列我也是才剛接觸而已,所以我用的方法很笨。 as如下: var expXML = new XML(); expXML.ignoreWhite = true; expXML.onLoad = function (success) { if (success){ trace("EXP Loaded successfully"); var exp : Array = expXML.firstChild.childNodes; trace(exp[0].firstChild.nextSibling.firstChild.nodeValue); } else { trace("Fail to load EXP"); } }; 我如果trace exp[0].firstChild.nextSibling得出來的是 <expURL>PF_ShareShow.asp?ID=6</expURL> 所以如果trace exp[0].firstChild.nextSibling.nodeValue 應該可以取出它的值不是嗎?可是出來的值卻是null。 我必須改成trace exp[0].firstChild.nextSibling.firstChild.nodeValue, 才能得出網址。 雖然成功讀出值,可是邏輯似乎怪怪的。 可否請各位高手的指點一下,謝謝m(_ _)m -- 某T:我喜歡妳>/////< :You gonna try harder...╮(╯_╰)╭ 某T:啥?試著硬一點>///<(羞) :是叫你再努力一點啦<(# ̄皿 ̄)╮☆(__ __||) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.201.234

01/09 01:54, , 1F
讀他firstChild的nodeValue?
01/09 01:54, 1F

01/09 02:05, , 2F
我把值讀出來了,可是邏輯有點奇怪...似乎是我節點算錯
01/09 02:05, 2F
※ 編輯: terrylchen 來自: 59.105.201.234 (01/09 02:21)
文章代碼(AID): #17WxICTP (Flash)
文章代碼(AID): #17WxICTP (Flash)