2012-04-20 192 views
0

我正在從AS2遷移到AS3,並且遇到了從XML獲取故障的節點。我能夠抓取(並跟蹤)AS3中的整個XML文件,但希望能夠使用firstChild將第一個標記存儲爲節點,並使用nextSibling遍歷標記。但是在AS3中,當我以前的AS2代碼實際上會抓取內容時,firstChild會一直空着。我究竟做錯了什麼? (我不能用自己的名字,因爲我重用多個XML文件的代碼塊調用標籤)AS3 XML節點遍歷

var eRoot = exampleXML.firstChild; 
while (eRoot != null) { 
    //do stuff 
    eRoot= eRoot.nextSibling; 
} 

我測試的XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<content> 
    <version>cd</version> 
    <lessonlock>~-*~-*</lessonlock> 
    <expiryDate>**#*#**##**##**##*##********###*</expiryDate> 
    <isSpanish>true</isSpanish> 
    <server>http://www.exampleSite.com</server> 
</content> 
+0

嘗試使用XMLDocument作爲as2樣式的xml http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/xml/XMLDocument.html – www0z0k 2012-04-20 21:10:22

+0

謝謝,這就是我一直在尋找:) – woodlumhoodlum 2012-04-20 23:44:18

回答

2

這是因爲無論firstChild也不nextSibling存在的性質在AS3 XML對象上。你這樣做的方式,你正在尋找節點<firstChild><nextSibling>

您應該閱讀API for XML,更好的是Adobe's guide to E4X

+0

對,我不明白。但問題仍然存在,因爲我在每個標籤中使用不同標籤的XML文件 - 我不想事先知道標籤的名稱以便抓取它 - 所以看起來似乎沒有辦法去做這個。除非我可能使用字符串操作來拆分標籤並將它們存儲到其他數據結構中。 – woodlumhoodlum 2012-04-20 18:55:30

+0

你應該*真的*閱讀我鏈接到的來源。您當然可以使用XMLLists遍歷子節點,而不必知道它們的名稱:'node。*'將返回所有子節點,'node .. *'所有子節點等。 – weltraumpirat 2012-04-20 18:58:24

+0

昨天我已經完整閱讀了第一個源代碼。當我昨天嘗試XMLList時,我只能在第一個插槽中創建一個長度爲1的整個xml文件的列表。但我可能錯過了一些東西,所以我會繼續嘗試這條路線,謝謝。 – woodlumhoodlum 2012-04-20 19:06:38