[問題] 讀取xml某個節點的nodeValue得到null值
小弟最近因為公司接了一個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
01/09 01:54, 1F
→
01/09 02:05, , 2F
01/09 02:05, 2F
※ 編輯: terrylchen 來自: 59.105.201.234 (01/09 02:21)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章